首页 > 其他分享 >trick

trick

时间:2024-06-10 15:24:11浏览次数:8  
标签:10 le long trick 输入 dp 贪心

trick:

  1. \(x\) 与各位数之和模 \(9\) 同余(CF10D
  2. st线段树 可以存 gcdCF10D
  3. 注意函数增减性(CF1632D
  4. dp 时若下标太大,可以调换下标和存储的数值(CF1974E
  5. 贪心不成立时,可以用反悔贪心(CF1974G
  6. 乘法总是比加法更优(CF1872G

注意点:

题目部分:

  1. 数组范围注意不要开错(记得修改缺省源)。
  2. 并查集数组要开两倍
  3. 翻译看不懂的话要自己翻。
  4. 题目中没用的信息跳过不看。
  5. 子串子序列看清楚!
  6. 要看样例解释

代码部分:

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

debug 部分:

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

算法选择:

数据范围:

  1. \(n \le 10\) 时,考虑暴力搜索状压 dp
  2. \(n \le 20\) 时,考虑 meet in the middle状压 dp 优化
  3. \(n \le 10^2\) 时,考虑dp
  4. \(n \le 10^3\) 时,考虑暴力枚举
  5. \(n \le 10^5\) 时,考虑贪心
  6. \(n \le 10^9\) 时,考虑二分数学
  7. \(n \le 10^{18}\) 时,考虑数学

题目描述:

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

标签:10,le,long,trick,输入,dp,贪心
From: https://www.cnblogs.com/jianhe/p/-/trick

相关文章

  • trick:动态维护虚树大小
    对dfn序开数据结构(如线段树),每个结点\(p\)维护对应dfn序区间内所有存在的点所构成的虚树大小\(sz_p\),需要维护区间内所有存在的点中dfn序最大点\(rv_p\)和最小点\(lv_p\)、区间内所有存在点的LCA\(lca_p\).考虑合并左右儿子\(ls,rs\),按两棵虚树是否相交分讨,先考虑......
  • Trick2!!!
    50.logtrick&&幺半群滑动窗口满足可结合律,并且有单位元,但是没有逆元却又想要滑窗(满足上述情况的一般有and,or,gcd),这时候就使用这个数据结构吧!参考了这位的题解以及这个查看代码 template<typenameT>structSlidingWindowAggregation{stack<T>stack_rev,stack_pos......
  • Tricks
    MaximumValue\(a_i-\left[\dfrac{a_i}{a_j}\right]a_j=a_i\bmoda_j\)枚举\(k=\left[\dfrac{a_i}{a_j}\right],b=a_j.\)余数比除数小。\(b>a-kb>0\iff(k+1)b>a\geqkb.\)那么\(a\)就是\(\le(k+1)b\)的最大数。二分就好。程式#include<b......
  • 几个小 trick
    这是我在这次LG月赛中领悟到的。关于T4T4让我们构造一个东西,在\(\mod998244353\)的情况下。然后你就很像把\(0\)给搞进去,发现不合理。这时候怎么办?可以把\(0\)变成\(998244353\)!这样就行了。很厉害,给我上了一课。关于T5这启示我们往一类问题思考。主要问题......
  • SlopeTrick
    SlopeTricktemplate<typenameT>structSlope{constTINF=std::numeric_limits<T>::max()/3;Tmin_f;std::priority_queue<T,std::vector<T>,std::less<>>L;std::priority_queue<T,std::vector<T>,......
  • 小白学视觉 | 神经网络训练trick总结
    本文来源公众号“小白学视觉”,仅用于学术分享,侵权删,干货满满。原文链接:神经网络训练trick总结来自|知乎  作者|Anticoder链接|https://zhuanlan.zhihu.com/p/59918821本文仅作学术交流,如有侵权,请联系删除神经网络构建好,训练不出好的效果怎么办?明明说好的拟合任......
  • 中考英语首字母快速突破003-2021上海奉贤英语二模-The Trick of '9' and '.99' Pricin
    PDF格式公众号回复关键字:ZKSZM003原文​The“DoubleEleven”ShoppingFestivalisoneofthelargestshoppingfestivalsinChina.Lastyear,thefestivalwentonforelevendays.Alibabaalonesaw498.2billionyuanintrade.​Manypeopleb......
  • 懒人读论文和做笔记的trick——只保留文本粘贴&去除空行
    工具/快捷键可以节省时间,这样就有时间玩耍啦!偷懒是好事情,懒是第一生产力!找到自己的节奏,不要被别人所干扰~只保留文本粘贴选项-快速访问工具栏-选择“所有命令”-找到“粘贴并只保留文本”-添加-移到最上边,按alt+1就可以了。去除空行复制之后粘贴到浏览器地址栏,然后左键连......
  • Tricks
    字符串计算一个字符串\(S\)的border的时间复杂度是\(O(|S|)\)的,且与模板串无关。在更换模板串时,不需要重新计算border。对于两个字符串集合,两两匹配的时间复杂度从\(m\sum|S|+n\sum|T|\),降低到了\(\sum|S|+n\sum|T|\)。(2.16A60pts)动态规划有些题目可以......
  • 【杂项】trick
    数区间颜色个数只数最左边的一个。维护时间戳来避免多次memset。树状数组上倍增-\(O(\logn)\)。P6619[省选联考2020A/B卷]冰火战士开始二分,设初始位置为\(r\),\(sum=\sum\limits_{i=1}^rtr_i\),要求的数记为\(ans\)。考虑依次跳\(2^{\logn},2^{\logn-1},.......