摘要: 原题链接 考察:思维+构造 打死本蒟蒻也想不到系列 思路: 当(n+1)n = n 此情况不存在 即 n = -1 (n+1)n = n+1 此情况不存在 n = 1 1 #include <iostream> 2 #include <cstring> 3 #include <vector> 4 # 阅读全文
posted @ 2021-04-06 22:28 acmloser 阅读(44) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:推导(?) 思路: k所表示的数一定可以在某一层的2n-1的位置上.对于当前n,如果k>2n-1,那么将它调到左边k-=2n-1,如果<说明k所代表数在下一层,=即可跳出. 1 #include <iostream> 2 #include <cstring> 3 using name 阅读全文
posted @ 2021-04-06 15:58 acmloser 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:模拟,贪心 思路: 大水题,但我WA两次.... 第一次没考虑b<a的情况,求距离是abs 第二次没考虑多次中转的情况...一开始的思路就是只存在一个中转站,如果>1个不如直接飞去后面那个.但实际此思路错误: eg: 111110000 (第1个是源地址,最后一个是目标),实际上一个 阅读全文
posted @ 2021-04-06 15:16 acmloser 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:区间DP 思路: f[i][j]表示[i,j]区间的最大得分,那么状态转移方程f[l][r] = max(f[l][r],calc(f[l][k],f[k+1][r],op[k+1]) calc函数是什么呢,根据定义f[i][j]表示i,j区间合并后的最大得分,calc就是再将f[l 阅读全文
posted @ 2021-04-06 01:48 acmloser 阅读(49) 评论(0) 推荐(0) 编辑
摘要: 原题链接 考察:区间DP 处理方式略像涂色...本蒟蒻是没想出来怎么转移.... 思路: 实际就是暴力...本蒟蒻还想了怎么快速判断循环..... 对于枚举的区间[l,r],看是否是循环区间,如果不是要再看里面的子区间是否为循环区间,枚举子区间f[l][r] = min(f[l][k]+f[k+1] 阅读全文
posted @ 2021-04-06 00:26 acmloser 阅读(53) 评论(0) 推荐(0) 编辑