摘要:
题意:给定一个数 n,求1-n之间有多少个包含13,并且是13的倍数的数。 析:数位DP,dp[i][j][k],表示前 i 位,模13余数为 j,k = 0,表示不含 13并且前一位不是1,k = 1,表示不含13但前一位是1,k = 2, 表示含13,那么剩下的就简单了。 代码如下: 阅读全文
摘要:
题意:给出n对数keyi,vali表示当前这对数的键值和权值,可以操作将连续的两个数合并,如果满足gcd(a[i],a[i+1])>1,得到的价值是两个数的权值和, 每次合并两个数之后,这两个数就会消失,然后旁边的数会接上. 析:区间DP,首先dp[i][j] 表示区间第 i 段到第 j 段所能得到 阅读全文
摘要:
题意:给求 1 - n 区间内的素数个数,n <= 1e11。 析:模板题。 代码如下: 阅读全文
摘要:
题意:现在有一个长度为 x 的正三角形,每次可以把一条边减小,然后用最少的时间变成长度为 y 的正三角形。 析:一开始,正着想,然后有一个问题,就是第一次减小多少才能最快呢?这个好像并不好确定,然后我就可以倒着想,从一个小三角形变成一个大三角, 那么边长长的越快越好了,剩下的就暴力了。 代码如下: 阅读全文
摘要:
题意:给定一个序列表示飞机要向哪个方向飞一个单位,让你改最少的方向,使得回到原点。 析:一个很简单的题,把最后的位置记录一下,然后要改的就是横坐标和纵坐标绝对值之和的一半。 代码如下: 阅读全文
摘要:
题意:有一个序列,然后对每一个进行ai = bi - bi + 1 + bi + 2 - bi + 3.... 的操作,最后得到了a 序列,给定 a 序列,求原序列。 析:很容易看出来,bi = ai + ai+1,然后就可以得到结果了。 代码如下: 阅读全文
摘要:
题意:有一壶水, 体积在 LLL 和 RRR 之间, 有两个杯子, 你要把水倒到两个杯子里面, 使得杯子水体积几乎相同(体积的差值小于等于1), 并且使得壶里剩下水体积不大于1. 你无法测量壶里剩下水的体积, 问最小需要倒水的次数。 析:考虑倒水的大致过程,不妨设 L > 0。首先向一个杯子倒 L/ 阅读全文
摘要:
题意:n 个有序序列的归并排序.每次可以选择不超过 k 个序列进行合并,合并代价为这些序列的长度和.总的合并代价不能超过T, 问 k最小是多少。 析:首先二分一下这个 k 。然后在给定 k 的情况下,这个代价其实就是 k 叉的哈夫曼树问题。然后用两个队列维护一下就好。 代码如下: 阅读全文
摘要:
题意: n 个点 m 条无向边的图,找一个欧拉通路/回路使得这个路径所有结点的异或值最大。 析:由欧拉路性质,奇度点数量为0或2。一个节点被进一次出一次,度减2,产生一次贡献,因此节点 i 的贡献为 i 点的度数除以2然后再模22degreeu⌋ mod 2)∗au。欧拉回路的起 阅读全文
摘要:
题意:给定n,求前 n 项 1/(k*k) 的和。 析:由于这个极限是 PI * PI / 6,所以我们可以找到分界点,然后计算就好。 代码如下: 阅读全文
摘要:
题意:给出一个整数nnn, 找出一个大于等于nnn的最小整数mmm, 使得mmm可以表示为2a3b5c7d2^a3^b5^c7^d2a3b5c7d. 析:预处理出所有形为2a3b5c7d2^a3^b5^c7^d2a3b5c7d即可, 大概只有5000左 阅读全文
摘要:
题意:问 nnn 个手势的石头剪刀布游戏是否能保证出每种手势胜率都一样。 析:当每种手势的攻防个数完全相等才能保证平衡,所以容易得出 nnn 是奇数时游戏平衡,否则不平衡。 也就是说打败 i 的和 i 打败的必须一样多,也就是说n-1 是个偶数。 代码如下: 阅读全文
摘要:
题意:对一个k元向量, 每次左乘一个k*k的矩阵得到新的向量.问经过一定次数的左乘后,能否使得该向量不再变化. (同时要求此时向量非零)。 析:设初始向量为A,矩阵为P.由于每次矩阵P都是左乘A, 那么可以把若干个P合并. 则题目的条件是: 化简为: 由于要求 所以 P-1 必须不可逆.可以直接用高 阅读全文
摘要:
转载:http://blog.sina.com.cn/s/blog_78ea87380101endw.html 方法一: 采用几何计算,求面积法。转载: 左右方向是相对前进方向的,只要指定了前进方向就可以知道左右(比如指定前进方向是从直线的起点到终点).判断点在直线的左侧还是右侧是计算几何里面的一个 阅读全文
摘要:
题意:给出平面上的两类点,判断是否能画一条直线将两类点完全分割开来. 析:用暴力去枚举任意两点当作直线即可。 代码如下: 阅读全文
摘要:
题意:求一个x使得 a^x%p = b p为素数; 析:从1开始扫一下就好,扫到p-1就可以了,关键是这个题为什么要用文件尾结束,明明说是0,但是不写就WA。。。 代码如下: 阅读全文
摘要:
题意:求标号最小的最大割点.(删除该点后,指定点#sink能到达的点数减少最多). 析:由于不知道要去掉哪个结点,又因为只有100个结点,所以我们考虑用一个暴力,把所有的结点都去一次,然后用并查集去判断。 当然也可以用割点和桥的模板,最后再判断一下,哪个点后面的点有多少就好。 代码如下: 并查集+暴 阅读全文
摘要:
题意:给定一个括号序列,改最少的括号,使得所有的括号匹配。 析:贪心,从左到右扫一下,然后统计一下左括号和右括号的数量,然后在统计中,如果有多了的右括号,那么就改成左括号,最后如果两括号数量不相等, 就改一下。 代码如下: 阅读全文
摘要:
Description 给出机场中飞机及跑道的编号和多个操作,对于每个查询操作,输出查询结果。 Input 第一行是一个整数,代表数据组数。每组数据第 一行为两个整数n(1<=n<=10)、m(1<=m<=1000),分别代表机场跑道数量(实际上就是队列的个数) 和操作数量 (实质就是对队列操作的种 阅读全文
摘要:
Description 编写程序模拟word中的“重做Redo”“撤销Undo” 两个按钮。即键盘输入一段文字(不能含#,e.g., I as Tom whether he will go to Beijingh)之后输入“#U”(“U”代表Undo)则撤销最后一个输入的字符(“h”),在输出位置重 阅读全文