10 2017 档案

摘要:题目描述: 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数。 例如:n = 12,包含了5个1。1,10,12共包含3个1,11包含2个1,总共5个1。 Input Output 阅读全文
posted @ 2017-10-25 10:05 声声醉如兰 阅读(205) 评论(0) 推荐(0)
摘要:题目大意:n个不同身高的队员和教练的按照身高排成波浪形……每个人按照身高由低到高编号,其中第m个是教练,他必须在第一个,如果条件允许,排第二的要比m低,如果条件不允许,即其余人都比教练高,则要让差距尽可能小,求排队方案数。 题目思路: dp_up[i][j],代表i个人排队,第j个人排在队首,且第二 阅读全文
posted @ 2017-10-20 10:26 声声醉如兰 阅读(167) 评论(0) 推荐(0)
摘要:题目大意:求一个序列中 先严格递增后严格递减的子序列的数目(要求这个子序列对称)。 题目思路:正一遍DP,反一遍DP,因为n<=1e5,dp要把时间压缩到nlogn #include<stdio.h> #include<string.h> #include<iostream> #include<al 阅读全文
posted @ 2017-10-19 13:40 声声醉如兰 阅读(220) 评论(0) 推荐(0)
摘要:费马小定理: 在p是素数的情况下 a^p≡a(modp),对式子变形得:a^(p-1)≡1(modp),那么a的逆元inv[a] = a^(p-2)。 组合数C(m,n) = m! / (n! * (m-n)!),当C(m,n)特别大的时候,需要对p取余,若p是素数,那么可以利用费马小定理快速求逆元 阅读全文
posted @ 2017-10-19 10:55 声声醉如兰 阅读(413) 评论(0) 推荐(0)
摘要:题目大意: 求区间内的回文数个数 题目思路: 数位dp,先枚举前一半数字,然后填上相应的后一半数字。 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<queue> #include< 阅读全文
posted @ 2017-10-16 14:57 声声醉如兰 阅读(242) 评论(0) 推荐(0)
摘要:题意:给你m个字符,其中有n种字符,每种字符都有两个值,分别是增加一个这样的字符的代价,删除一个这样的字符的代价,让你求将原先给出的那串字符变成回文串的最小代价。 思路:区间DP,dp[i][j]代表将区间[i,j]变为回文串的最小代价。 #include <string.h> #include < 阅读全文
posted @ 2017-10-10 20:03 声声醉如兰 阅读(124) 评论(0) 推荐(0)
摘要:题意:告诉有n场晚会中需要穿的衣服,衣服是可以套在其他衣服外面的,也就是说如果顺序为 1 2 1,那么可以将2套在1外面,第三场晚会需要穿1的时候把2脱掉即可,这样就只需要穿两次衣服。题目是再告诉了顺序之后需要求出在某种序列下最少需要穿多少次衣服。 思路:区间DP,对于区间【i,j】,如果a[i]在 阅读全文
posted @ 2017-10-09 19:57 声声醉如兰 阅读(140) 评论(0) 推荐(0)