所有的伟大,都是从最初的平凡开始的。
A
题意:一个图大小最大为(n行m列)20行100000列,带有*和.的图,每次可以消除a行b列,问采用最佳的消除方式能否把带星星的消除掉。
题解:dfs暴力,因为只有20行复杂度只是2^20,然后在乘以m,总的复杂度为2 ^ 20 * m,这么暴力竟然过了
思路:主要思路是dfs,深搜,如果深搜到最后一行的话直接return了,当回溯到最后一行且,消除的行数达到最大的时候的话,并且这种方式剩下待消灭的列可以被消灭则将标识位flag标记为true,这个是回溯的源头,也就是有解的标志,如果没达到最后一行的话,就一直,回溯下去,往下一行,继续深搜,如果好了的话就剪枝,如果没好的话就接着回溯,这次already+1,然后给当前行标记上。
代码:
1 |
|
B
题意:输入p,找出最小的n,使得 n!% p == 0成立。
题解:怎么搞呢???涉及到知识盲区了……,emmmm,python?
对忘了我会python了。。。。。。
试一下吧!
1 | t = int(input()) |
这个题有点强把python给卡了,好像的确会卡掉。。。
那下面进入正解吧。
思路:类似与素数筛吧,先对p元素进行质因子分解,然后采取二分的方法,l=0,r=p,即可,然后mid,判断它的每个质因子个数,是否,比p的质因数个数多,如果多的话,说明mid偏大了,则右区间左移动,如果少的话,则左区间右移,二分用那个二进制移位比较好,可以防止l+r超出整型的范围。
代码:
1 |
|
E
签到题吧……
题目链接自己理解E
永远都是2^32次方吧
python最短代码
1 | print(4294967296) |
I
题意:寻找最大连续子串,
比如acbcc 的最大自串是cc , abc的最大子串是c,helloworld的最大子串是world,然后按题意暴力就行
题解:暴力,找出最大字母,记录下位置来,然后判断每个最大子串的大小,大的后缀替换掉前面的就行了
代码:
1 |
|
J
题意:给一串数字,找出其中差值最大的数来,并输出最大差值
我是用set维护,取第一个和最后一个就行了,其实直接min,max统计也行,而且不占内存
代码:
1 |
|