UVa 11040 - Add bricks in the wall(规律)
给出墙上的部分数字,求所有的数字。
简单题,直接算就行。
1 |
|
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出墙上的部分数字,求所有的数字。
简单题,直接算就行。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
求所给的数能用多少种连续素数的和表示。
类似于求最大连续和优化的方法。使用前缀和减少运算。然后输入范围是2到10000,貌似可以打表交。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出两个1e12以内的数,求有多少不是素数,但是一个素数的n次方(n>1)数。
一开始用set存了所有的数,之后用set.find()循环求得两个迭代器,再用distance求个数,但是因为所求的数的间隔较大,循环会超时……虽然超时了, 但是学了求迭代器距离的方法,收获也挺大。
后来改为如下做法,首先打素数表,然后分别求比所给的两个数小的数的个数,求两者差。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
特别抽象的一道题,给出数据总量n,数组p的元素大小sp,数组q元素大小sq,求使Qofs'(i)=(Pofs(i)+Pofs(i)<<A)>>B成立的A、B 的值,和q数组占用的空间k。
一开始没看懂题目,翻译之后感觉不知从何下手。直到看到了 code4101 的博文:http://blog.csdn.net/code4101/article/details/38540759
只需要从枚举32以内的A、B并判断是否合法即可,最终保留最小的k和使k最小的a、b。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出数据块,判断能否恢复数据且是否合法。
好久前跳过去的一道题,找了个英语大神翻译之后总算看懂了……读懂题之后其实并不难,就是简单的数据处理。
一开始没注意到样例2的数据校验不合法,导致浪费了好多时间。修复完成后输出时注意校验块不要算在原始数据里。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出一个1到n的排列,给出操作顺序,使升序排列能变为所给排列。
书上的表述又出错了,导致WA了一次。倒着从所给排列变回升序排列,然后倒着打印解。当前两个已经是升序,就把最后一个拿到前面,否则交换之后再拿。
感觉只要不是求最少步解的题,都可以用构造法转化成类似方法求解。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出一个1到n的排列,每次可以交换任意偶数区间的前一段和后一段,输出一种操作方法似的操作之后为升序排列。
类似于那个翻煎饼的题,从左开始进行排列。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出一个n个数字的串,去掉d个数字使得串的数值最大。
用贪心法解决,当前一个的数字小于后一个数字时,前一个即被去掉,当去掉个数足够时,读入剩下的字符即可。如果去掉的数目不够,剩下的数字则不存入。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出四个数组a、b、c、d,每个取一个数字,求有多少种取法使得和值为0。
枚举a、b中的和,查找c、d中的和的相反数有没有与a、b的和相等的。O(n^2*logn)的算法,如书上所说的,使用multiset和count超时了,改用 数组之后Ac。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **
给出两个01?串,求通过多少次变换可以让第一个与第二个相同。可进行的变换有把0变成1,把?变成0或1,交换两个字符。
使用交换把两串相同的交换没有意义,所以仅对两串有差异的地方进行统计。0可以任意变成1,而0只能通过交换或?产生,所以对第一个串中需要由1变为0的处理就成了关 键。首先是用效率最高的交换,然后使用?,如果交换和使用?都无法满足,那么就不能相同。处理完需要由1变为0的之后的就简单了,每处不同最少需要进行一次操作。
1 | #include<cstdio> |
** 本文迁移自我的CSDN博客,格式可能有所偏差。 **