trick

打印 上一主题 下一主题

主题 887|帖子 887|积分 2661

Trick:


  • \(x\) 与各位数之和模 \(9\) 同余(CF10D
  • st表 和 线段树 可以存 gcd(CF10D
  • 注意函数增减性(CF1632D
  • dp 时若下标太大,可以调换下标和存储的数值(CF1974E
  • 贪心不成立时,可以用反悔贪心(CF1974G
  • 乘法一般比加法更优(CF1872G
  • '(' 看成 \(+1\),')' 看成 \(-1\) (CF1976D
注意点:

题目部门:


  • 数组范围 注意不要开错(记得修改缺省源)。
  • 并查集 数组要开 两倍
  • 翻译 看不懂的话要本身翻。
  • 题目中 没用的信息 跳过不看。
  • 子串子序列 看清楚!
  • 排列 有特殊性子。
  • 要看 样例解释
代码部门:


  • 多测 不清空,爆零两行泪。
  • dp 初始化 不要忘记(最好设成 LONG_LONG_MAX 或 LONG_LONG_MIN!)。
  • memset 最好 不要用,复杂度高,容易超时。
  • 判断 相称 应是 ==。
  • max 和 min 中前后的数据类型要相同。
  • 不能随意 开 long long,可能爆空间。
  • 看数据范围, 不开 long long 见祖宗
  • long long 也不敷了用 __int128,或手写 高精
  • vector 最好 不要直接排序,复杂度高,可以用 索引 来排序。
  • 注意算术优先级(加 括号 )!
  • 交互题记得输出后要 清空(fflush(stdout);),并且不要用 ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); 来加速。
  • 数组 越界 要特判,好比下标从 \(0\) 开始时 i-1 要特判一下。
  • 循环 边界 想清楚再写。
  • 图论时的输入有时从下标 \(2\) 开始读入。
  • 二分 边界 不要判错。
  • 二分时 \(l+r\) 若超出 long long 范围,可以用 \(mid=l+(r-l)/\) 来写。
  • cf 的题 不要 写 unordered_map,只能用 map,由于有些大佬卡掉了 unordered_map。
  • 提交时记得 删去 调试信息!
  • string 类如果写了 s=" "+s; 之类,n=s.size() 应写在前面。
  • st表要调用log的 预处理!!
debug 部门:


  • 样例输入不了,可能是 Dev-C++ 死机了,可以打开 洛谷在线 IDE 或其他网站来写。
  • 如果用了 while(cin>>n) 之类的输入,程序运行无法终止。如果输入的类型是 整数,常用的办法是换行后输入 \ 大概什么 字母,如许输入就会停止了,并且有输出。大概 在循环中特判 \(n\) 为 \(-1\) 时竣事,本身手动输入 \(-1\) 即可。提交时记得 删去
  • 没有输出,可能是死循环了。把 ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); 注释掉,之后在递归里 输出 每次的值。
  • dp 值不对,可以将 dp 的表格 打印 出来。
  • 如果是交互题,可能是样例本身不是最优。
算法选择:

数据范围:


  • \(n \le 10\) 时,思量 暴力搜索状压 dp
  • \(n \le 20\) 时,思量 meet in the middle状压 dp 优化
  • \(n \le 10^2\) 时,思量 dp
  • \(n \le 10^3\) 时,思量 暴力罗列
  • \(n \le 10^5\) 时,思量 贪心
  • \(n \le 10^9\) 时,思量 二分数学
  • \(n \le 10^{18}\) 时,思量 数学
题目描述:


  • 最大值最小(最小值最大):二分、贪心。
  • 最大得分和最小得分:贪心、dp。
  • 修改、求区间最大值:线段树、前缀和。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

愛在花開的季節

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表