随笔分类 - 模拟
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 对m个串建立一棵字典树。 然后对主串。 尝试从第一个位置开始.在字典树中尝试匹配 如果匹配到了位置i 就再从位置i+1开始尝试匹配 (这时又重新从根节点开始重新匹配 每次匹配最多只要往下走50步。 写个递归的过程就好。 【代码】
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 枚举序列的头两个数字是什么 O(N^2) 然后头两个数字确定之后。 f[3],f[4]..就确定了 只需查看f[3],f[4]..是不是存在就好了。 但是这样复杂度看起来是O(N^3)的了。 其实不然,a[n] = a[n 1]
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 模拟。 【代码】 cpp include using namespace std; int main(){ ifdef LOCAL_DEFINE freopen("rush_in.txt", "r", stdin); endif
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 知道题意之后就是一个模拟的过程了。 用int now记录当前苹果的个数。bool flag记录是否有小数(即半个苹果) (这样处理为了防止double精度误差 根据half 和halfplus的规则,变化now和flag即可。
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 会发现。 进行一次操作过后。 得到的数字肯定是 【代码】 cpp include define ll long long using namespace std; const int N = 1e3; const ll MOD
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 暴力往前走x分钟就好。 直到出现7为止。 【代码】 cpp include using namespace std; int hh,mm,x,cnt; bool find7(){ if (hh%10==7 || (hh/10)=
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 感觉最大度数|1就是最多需要的个数了。 就贪心一下。 然后模拟染色的过程就可以了。 (贪心染色就可以了 (看看周围哪个颜色没有,就用它) k在dfs之前忘记判断是不是奇数了。。。。 以及忘记清空g 【代码】 cpp includ
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 可以考虑把所有的题目按照ai排序。 然后顺序考虑最后做出来的题目个数和第i道题目的ai一样。 则1..i 1这些题目就没有用了。 值考虑i..n这些题目就可以了。 显然考虑ti最小的若干项。 使得它们的时间和=i的题目(只要枚举
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 写个dfs看看是不是每个节点都有3个叶子节点就可以了。 【代码】 cpp include using namespace std; const int N = 1e3; int n; vector g[N+10]; bool o
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 让你把排列1..n变换成对应的输入序列。 每次可以交换前两个数字,或者把第一个数字放到末尾去。 可以逆向考虑。 即把无序的序列变换成有序的. 则第二种操作就变为"把末尾的数字放到最前面去" 则可以这样。 如果a[0] a[1]
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 考虑删掉第i位。 则第i+1位就会取代第i位。 则肯定第i+1位比第i位大的话,才比较好。 则从小到大贪心删,找到第一个a[i+1] a[i]的i. 然后每次删掉这样的i就可以了。 【代码】 cpp / 1.Shoud it u
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 统计需要的个数。 不够了,就买。 【代码】 cpp include define ll long long using namespace std; ll a,b,x,y,z,ta,tb; int main(){ ifdef L
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 set1 set1;记录关键点 某个人怪物永远打不死了,第一维是时间,第二维是下标 int dic[1e5+10] //记录对应下标的怪物它此时此刻在何时打不死了 set2 set2;关键点2 有怪物要更新了的时间点,以及记录的
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 字符串排序后 显然是n/2 1和n/2这两个字符串进行比较。 设为a,b 找到第一个不相同的位置。 即0..i 1是相同的前缀,然后第i位不一样了。 则如果i是a的最后一位了。 那么直接输出a就好。 这样满足大于等于a且小于b
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 枚举第一段的范围[0..i] (0 【代码】 cpp / 1.Shoud it use long long ? 2.Have you ever test several sample(at least therr) yourse
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 从大到小安排。 显然想让第i大的数字归位 只要让他翻到最上面,然后再翻回来就ok了 即operate(pos[i]) operate(i) 【代码】 cpp / 1.Shoud it use long long ? 2.Have
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 IDA 保证这次移动的方格不和前一次重复。 然后加一个8数码的剪枝就行了。 看看当前状态和目标状态有多少个地方是不一样的。 如果当前的步数加上它仍然比答案大。 显然可以剪枝。 因为不同的数目肯定小于等于要移动的数目; (每次移动
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 迭代加深搜索。 枚举最大层数。(也即改变的数字个数 然后枚举第一个改哪个数字,第二个改哪个数字。。 一定要注意字典序问题。 每次优先改成较小的字典序(也即顺序枚举 然后注意这个字符不改的情况。 不要算改变数。 最后改完之后。 只
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 先预处理出来一个正方形。 然后每次枚举新加的正方形左上角的坐标就可以。 注意覆盖的规则,控制一下就可以。 然后暴力判断是否相同。 暴力回溯即可(只用回溯一个正方形区域) 【代码】 cpp / 1.Shoud it use lon
阅读全文
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 枚举前i 1个圆。 哪些圆和它相交。 取圆心纵坐标最大的那个圆就可以了。 【代码】 cpp include using namespace std; const int N = 1e3; vector now; int a[N+
阅读全文

浙公网安备 33010602011771号