摘要: 标记一下空格和数字,然后遍历整个数组,顺便深搜,求出满足条件的数字个数加上空格连通块个数 #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) 编辑