上一页 1 2 3 4 5 6 7 8 9 10 ··· 27 下一页
摘要: 大整数+快速幂 复杂度$O(500500log(p))$ 其中,位数的计算方法: 由于$2p$最低位不会是0,所以$2p-1$和$2p$有同样的位数,由于$10x$的位数为$x + 1$,所以令$2p=10x$有$x = \log_{10}{2p}=p*\log_{10}{2}$,所以位数为$p*\ 阅读全文
posted @ 2021-07-21 21:56 yys_c 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 标记一下空格和数字,然后遍历整个数组,顺便深搜,求出满足条件的数字个数加上空格连通块个数 #include<iostream> using namespace std; const int N = 1010; #define block 1 #define num 2 int g[N][N]; in 阅读全文
posted @ 2021-07-19 16:27 yys_c 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 类似于开关问题的二进制枚举,二进制枚举第一行的情况,那么第二行的选择情况会受到上一行的限制,并且还需要保证本身不存在相邻的数字,这样一直枚举到最后一行比较一下选择数字的和,存一个最大的答案就可以了,复杂度$O(2^mn)$ #include<iostream> using namespace std 阅读全文
posted @ 2021-07-19 15:34 yys_c 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 由于$1≤v≤25,1\le g \le 15$,数据范围比较小,所以可以枚举出所有饲料的选择情况(\(2^{15} = 32768\)),再取其中字典序最小的,饲料种数最少的方案 #include<iostream> #include<vector> using namespace std; co 阅读全文
posted @ 2021-07-19 14:29 yys_c 阅读(70) 评论(0) 推荐(0) 编辑
摘要: 如果纯暴力做的话,最多的格子数有$1000*1000=1e6$,每一个格子都有染色和不染色两种,一共要枚举$2^{1e6}$种情况,肯定会T,, 本题的特殊性在于如果对一个格子进行染色操作A,如果染色过后与想要的最终结果不冲突,那么这个操作A一定是对的,就是不存在反悔的问题(就是后面某一个染色操作出 阅读全文
posted @ 2021-07-19 13:05 yys_c 阅读(40) 评论(0) 推荐(0) 编辑
摘要: **思路:**由于递归每一层都计数[l, r]中1和0的个数复杂度太高,极限情况下,递归过程中计数的复杂度:\(1024^{11} = 2^{110}\),这里用前缀和记录一下1的个数,就可以每一层$O(1)$复杂度获得1的个数了,做法就是根据题目说的递归构造树,然后后续遍历 **空间大小问题:** 阅读全文
posted @ 2021-07-18 20:19 yys_c 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 第一次交的时候T了三个点,发现询问数量最大1e5, 当迷宫比较完美(从每一点开始都可以把整个迷宫跑一遍)的时候,这个复杂度为$1e5 * 1000*1000 = 10^{11}(O(n^2m))$,超时 如果一个位置A可以到达B,则A、B相互可达,并且从A和B出发能到达的位置数目相同,所以再搜索完一 阅读全文
posted @ 2021-07-18 20:18 yys_c 阅读(37) 评论(0) 推荐(0) 编辑
摘要: **思路:**一开始想的是改一下深搜的方式,让它只遍历矩形块,然后在下面的遍历中判断是否出现矩形块交叉,但是很难实现,然后发现可以通过在遍历过程中判断是否合法。 船体有交叉(连通块不是矩形)<=> 必定会在深搜过程中搜到如下的(a, b)位置(4种情况之一) 所以在搜到这种情况时,直接返回false 阅读全文
posted @ 2021-07-18 20:17 yys_c 阅读(73) 评论(0) 推荐(0) 编辑
摘要: 给一个正整数序列,再给一个t值,求其中和为t的子集的个数 #include<iostream> #include<map> using namespace std; const int N = 10010, M = 20; int n, m; int a[N]; int f[N][M]; int m 阅读全文
posted @ 2021-07-11 20:45 yys_c 阅读(73) 评论(0) 推荐(0) 编辑
摘要: flood fill #include<stdio.h> #include<stdlib.h> #define N 410 int g[N][N], st[N][N]; int ans[N * N / 2 + 1], idx; int qx[N * N], qy[N * N], hh, tt = - 阅读全文
posted @ 2021-07-08 16:25 yys_c 阅读(24) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 27 下一页