题目大意
给定多个 ,要求输出满足某种异或性质的最小的 (或按题意构造出的答案)。本题可通过打表/找规律解决,并需要对小值(如 )特判。
AC代码
打表题
注意特判一下1 and 2
其他的没什么好多说的
其实下次这种题目建议写一个对拍程序
1 |
|
心路历程(WA,TLE,MLE……)
哈哈,没特判2
给定多个 n,要求输出满足某种异或性质的最小的 2k(或按题意构造出的答案)。本题可通过打表/找规律解决,并需要对小值(如 n=1,2)特判。
打表题
注意特判一下1 and 2
其他的没什么好多说的
其实下次这种题目建议写一个对拍程序
1 | #include <iostream> |
哈哈,没特判2
有一个环形的 n 个点(编号 1simn),两只手初始在固定位置。给出 m 次操作,每次要求移动某一只手到指定点,移动代价为沿环走的最短步数,同时两只手不能占用同一个点(或有重叠限制)。求完成所有操作的最小总代价。
其实与B题的唯一不同点就是你可以动另一只手。
这题让我想起来天津省选的线段
https://www.luogu.com.cn/problem/P3842
这个线段就是你要忽略一些其实没有意义的情况,这道题应该也是一样,你不必把两只手在哪个点都存下来,因为后走和前走是一样的
注意防重叠条件的书写
就是我之前写if(pos≠j) 但实际上j有可能代表副手,也有可能代表主手,如果代表副手就有问题了,pos就是移动副手,副手不应该和副手重叠?搞笑
其实可以在cal函数中写这个逻辑,但因为这个cal函数是从B题拉过来的,我就懒得改了
分享一组hack数据
1 | 8 7 |
应输出
1 | 14 |
AC https://atcoder.jp/contests/abc376/submissions/59140626
1 | #include <iostream> |
WA了13个点
https://atcoder.jp/contests/abc376/submissions/59134285
1 | #include <iostream> |
WA了9个点,解决了一些特殊情况
1 | #include <iostream> |
给定序列 h1,dots,hn。统计所有长度至少为 1 的等差子序列的个数(对 998244353 取模)。
具体思路与该题解一致
https://www.luogu.com.cn/article/hrn3rj07
1 | #include <iostream> |
在一条直线(或编号轴)上从起点出发,每次可以从位置 j 跳到 i,要求跳跃长度在区间 [l,r] 内。每到达一个位置会获得或损失对应的分值。问到达“终点对岸”(位置编号超过 n)时,能得到的最大总分。
比较裸的子序列提取dp(子序列为 [ i-r , i-l ] ),唯一需要注意的是
只要她下一步的位置编号大于N就算到达对岸。
所以你的dp范围要扩大一点
1 | #include <iostream> |
给定若干次“鼹鼠出现”的信息:每次出现的时间 Ti 与坐标 (Xi,Yi)。初始在某个位置,每次可以在单位时间内移动一定距离(等价于曼哈顿距离不超过时间差)。问最多能打到多少只鼹鼠。
思路见洛谷进阶篇P227
注释也算写的比较详细
1 | #include <iostream> |