摘要:
P2602 [ZJOI2010]数字计数 bzoj1833 套用的写windy数时的数位dp模板 emmm其实还有很多种做法 f[i][j][k]表示填了i位数其最高位数字为j时数码k出现了多少次 注意在 和x的位数相同有一位比x的对应位数小的全部方案数 其余位数对应数字都相同 的时候要再统计一下前 阅读全文
摘要:
P4180 【模板】严格次小生成树[BJWC2010] 这个的INF必须得开大 最后找了一篇题解的INF复制上来 最小生成树和严格次小的区别? 用非树边替换最小生成树的一条边 枚举每一条非树边找两顶点树链上的最大边(如果最大边与非树边边权相同则找次大边) 然后更新最小增量 最大边和次大边可以通过树上 阅读全文
摘要:
P1967 货车运输 A国有n座城市,编号从1到n城市之间有m条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有q辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。最大生成树+倍增算路径最小值 最大生成树就是kruskal时将边改为降序 然后就和普通krus 阅读全文
摘要:
模板 P3379 【模板】最近公共祖先(LCA) 也是看着学长的模板改的..... 讲解都是黄学长的课件里的 放上来方便我自己看吧 他讲的太好辽 倍增 首先对于每个结点先进行DFS 预处理出它的深度,再记录下它们往父亲方向走20 21...2k步所到达的结点在这里2k大于整棵树的最大深度 预处理完后 阅读全文
摘要:
prim 又双叒叕看学长的模板写的 顺便重新感性理解优先队列 P3366 【模板】最小生成树 加一个cnt来记录加了多少个点 最后不足n个则表明没有连通 1 #include<iostream> 2 #include<cstdio> 3 #include<queue> 4 #include<cstr 阅读全文
摘要:
双倍的快乐 P2023 [AHOI2009]维护序列 P3373 【模板】线段树 2 看学长的模板然后改了一下 要注意每次询问时pushdown 然后就是这道题要注意开longlong 从学长那里学来的*1ll好像对我并没有什么用QAQ 1 #include<cstdio> 2 #include<i 阅读全文
摘要:
P1137 旅行计划 最长路 DAG 拓扑排序的过程中直接 DP 算是从头开始图论的学习....emmmmmmm 通常情况下,在实现的时候会维护一个队列以及每个结点的入度。在删 除边的时候顺便把相应结点的入度减去,当这个结点入度为 0 的时候直接 将其加入队列。 大概对图论形成了惯性思维 看到就怕Q 阅读全文
摘要:
食物中毒 错误原因: 没有意识到在药包里就会有几个相同的化学物质 int转long long的时候没有处理好 导致出现负数 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define rg register 4 #define ll long 阅读全文
摘要:
P2657 [SCOI2009]windy数 bzoj1026 一本通说这是一道数位dp模板题 emmmmm 就是逐位确定 f[i][j]表示填了i位数其最高位数字为j 然后就去求可能方案数 分为 不满足x的位数的严格小于x的全部情况 和x的位数相同 但最高位小于x的最高为的全部方案数 和x的位数相 阅读全文
摘要:
POJ - 3904 大概 好像 只用到了那个思想 只是这道题用的素数筛和我常用的不一样 然后就 emmmmmm 把mo[prime[j]*i]打成了mo[i] 然后就是prime[j]*i<N打成了prime[j]<N/i 好像是精度有问题 阅读全文
摘要:
P2293 [HNOI2004]高精度开根 bzoj1213 为了证明我不是毒瘤 于是我把这道题打了 很艰难 结果一看最后那个题解 居然要乘10来确保精度 惊了?! 然后还改进了一下自己的高精模版 阅读全文
摘要:
P3205 [HNOI2010]合唱队 bzoj1996 对从第二个人开始的每个人,如果他比前面那个人高(H较大),那么将他插入当前队形的最右边。如果他比前面那个人矮(H较小),那么将他插入当前队形的最左边。 给定一串序列,问有多少种初始序列经过如题操作可以得到此序列。 很容易想到每一个状态是由最后 阅读全文
摘要:
P3385 【模板】负环 P2850 [USACO06DEC]虫洞Wormholes 这题和这个是一样的 只是输入时不一样 看学长的模板 然后自己写一个用双档队列优化的超时了QAQ 然后回归学长的模板 就是判断一个点它是否经过了大于n次 如果大于了n次 那就说明有负环 (大概是这个意思) 阅读全文
摘要:
P3807 【模板】卢卡斯定理 bzoj2982 这两个题都是lucas的模板题 我只是因为combination的题面很有趣 所以决心一定要打出来 证明什么的emmmmm 后面再说 背模板!!!! LMZ有n个不同的基友,他每天晚上要选m个进行[河蟹],而且要求每天晚上的选择都不一样。那么LMZ能 阅读全文
摘要:
P1965 转圈游戏 我只是突然发现我没有放快速幂模板 阅读全文
摘要:
P2312 解方程 根据同余的性质 可以知道如果当前解x成立的话 则在式子左右同时模一个数该式还会成立 所以可以在输入的时候进行取模 然后挨个枚举 m是在106嘛 然后在累乘pai开一下long long 可能会爆int(别问我为什么知道) 阅读全文
摘要:
P1072 Hankson 的趣味题 枚举gcd(x,b0)判断 阅读全文
摘要:
就是一个蒟蒻无聊搞的乱七八糟的东西 想法很美好 结果真正打的时候发现有一堆要考虑的细节 几乎崩溃 主要就是判断一下为负时的各种情况 其实都差不多 应该有更好的方法 但蒟蒻暂时只能想到这种每种情况讨论一下的方法 然后死于在mzoj提交时我的数据格式 导致无数次的编译错误 阅读全文
摘要:
T1 浇水 【题目描述】 LazyChild在青岛二中科技楼里种了一排n棵树,每棵树都有一个高度。他会枚举所有的区间,然后从区间中找出一个高度最矮的树进行浇水(照顾弱者)。由于LazyChild浇完水之后就精疲力竭了,所以请你帮助他计算每棵树都被浇了几次水。 【输入文件】 第一行一个整数n。 第二行 阅读全文
摘要:
P2458 [SDOI2006]保安站岗 最终决定重新打一遍这题 然后被儿子覆盖的这个情况还是重新看一遍以前的代码才捋清楚QAQ 每个点有三种状态 自己覆盖自己 被父亲覆盖 被儿子覆盖 然后要注意被儿子覆盖时的转移 最后如果都是儿子被孙子覆盖的花费更少的话 得选一个儿子自己覆盖自己花费最少的来覆盖 阅读全文
摘要:
一遍dp 要注意转移时它行号注意判断 因为它行是一个环 然后就是UVa一如既往令人窒息的输入输出 主要按的刘汝佳的思路 阅读全文
摘要:
P4408 [NOI2003]逃学的小孩 就是求一个树的直径 然后再在这个路径中找一点 emmmmmm大概那个意思 就这样吧emmmm 详见代码 阅读全文
摘要:
POJ - 2631 我太水了 发现树的直径好像没有弄透彻 然后就重新清理了一遍 把树形dp的做法和两遍dfs的做法重新清理了一遍 树形dp求树的直径 核心: #include<bits/stdc++.h> using namespace std; const int N=1005; const i 阅读全文
摘要:
P1156 垃圾陷阱 蒟蒻哭辽QAQ 想了半个小时 明明嗅到了背包的气息 but emmmmm 状态想偏了QAQ 设dp[i][j]表示前i个垃圾(注意一定要先按垃圾出现时间排序好),到达高度j时所拥有的最长的生命时间。 阅读全文
该文被密码保护。 阅读全文
摘要:
一时暴搜一时爽 一直暴搜一直爽 cxl居然和我写的同款dfs,天呢 菜鸡开始对这题并没有什么想法 状态方程死活想不出来 还是暴搜好 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define ll long long 4 #define rg 阅读全文
摘要:
P2747 [USACO5.4]周游加拿大Canada Tour 就记得f[1][1]的时候要初始化为1 忘了ans也要设为1 直接弄的0美滋滋 把它看作两个人同时从左边出发 然后dp就好了 可以去了gai一下floyd求最大环,最小环 和这题还是有点区别 阅读全文
摘要:
证明应该是小凯的诱惑的升级版 应该可以用那个同余最短路来跑 阅读全文
摘要:
[TJOI2008]公共子串 f[i][j][k]表示a数组前i个值 b数组前j个值 c数组前k个值中的本质不同的公共字串有多少个 N3 每次都重新计算 阅读全文
摘要:
P1020 导弹拦截 就是找最长不上升子序列长度和最少由几个最长不下降子序列覆盖 最长不上升子序列就把它翻转过来求其翻转之后数列的最长不下降子序列 所以不能用lower_bound得手写QAQ 然后我又被二分卡了好久 我是个弟弟 最少由几个最长不下降子序列覆盖 就等于求它原来数组的最长上升子序列的长 阅读全文
摘要:
P1439 【模板】最长公共子序列 此思路详见luogu第一个题解 一个很妙的离散化 刘汝佳蓝书上面的LIS 详见蓝书 d[i]以i为结尾的最长上升子序列的长度 g[i]表示d值为i的最小状态的编号即长度为i的上升子序列的最小末尾值(d[j]=i的j值最小) liurujia's 只是手写二分的时候 阅读全文
摘要:
POJ - 1170 Shopping Offers 放假打题 sufu 看完题我是懵比的 这.... emmmmm 瓜想了半个小时之后我选择狗带 然后点开链接 状压+dp!!!!哦!!!!!!巧妙!!!! 就先把目标状态还有各个优惠的状态处理好 然后就是一个完全背包处理用优惠 阅读全文
摘要:
UVA - 10328 求至少k个连续硬币为正面的情况数 是有限制的递推DP 我枯了 mian了半天把里面的关系理清楚 然后我高精又双叒写挂了QAQ 把高精+的c.a[i]+=p.a[i]+q.a[i]; 打成 c.a[i]=p.a[i]+q.a[i];我就系个瓜娃几 把至少转为至多 将至少k个连续 阅读全文
摘要:
串联电阻 高精+完全背包 核心 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define ll long long 4 #define rg register 5 const int base=10000,power=4; 6 const 阅读全文
摘要:
1 #include<bits/stdc++.h> 2 using namespace std; 3 #define rg register 4 #define ll long long 5 const int N=30,C=30000+5; 6 int n,m,ans=0,c[N],a[N],f[ 阅读全文
摘要:
P1080 国王游戏 推那个贪心直接自己推就好了,最后推出来最优解在a*b按从小到大排序中 就在读入完后排序 再按排好的顺序一个一个比较出这个方案中得到最多钱的值 这个值就是答案 推导:略 (真的不是我想咕咕咕) 最最最最最最最重要的是我打这题时的艰难改的过程 因为对模版理解不彻底 导致自己背着打的 阅读全文
摘要:
相当于把各种运算人工模拟一遍,还是很好理解的 参照的是这个dalao的模板 (感觉全机房的都用的这个模板)理解了就差不多了 一些我犯过的错误还有注意的地方 小于的比较要从高位到低位比较 主模块 注意要反转 讲的时候没认真听 然后自己打的时候用的1位的数来测的 一交 “WA!” QAQ!!! 后面没看 阅读全文
摘要:
P2038 无线网络发射器选址 这个题有很多种做法 然后就可以练很多小的算法 技巧啥的嘿嘿 首先是模拟 要开一个为128+40为边长的数组 然后枚举在20~148内以(i,j)为中心的正方形 然后再挨个挨个计算sum 1 #include<bits/stdc++.h> 2 using namespa 阅读全文
摘要:
P1941 飞扬的小鸟 一个完全背包+01背包 往上跳的状态转移 (么得什么好说的) 往下 然后是跳上天花板的状态的特判 我开始写成了 应该是 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define rg register 4 #defi 阅读全文
摘要:
P1516 青蛙的约会 可以推出来 (x+va*t)-(y+vb*t)=p*l 然后化成(l*p+(b-a)*t+l*p=x-y 然后有一个我也不晓得叫什么的定理 a*x+b*y=c 如果gcd(a,b)不能整除c 那无解 然后还有一个我还是不晓得名字的东西 先求出方程a*x+b*y=c的一个解x0 阅读全文