自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

代码笔记本

个人博客www.yyycode.cn

  • 博客(143)
  • 收藏
  • 关注

原创 B. Appleman and Tree(树形dp)

https://codeforces.com/problemset/problem/461/B思路:dp[i][0/1],dp[i][0]表示以i为根节点的树其中 i 所在的连通块没有黑点的方案数,dp[i][1]表示以 i 为根节点的树其中 i 所在连通块有黑点的方案数。然后考虑。如果当前i点本身是黑色,那么其可以和dp[v][0]这条边乘起来并且方案数乘起来累加到答案上去。如果当前i本身是黑色,那么其和dp[v][1]这条边就要断开,此时整体答案也是两者相乘累加到答案上去。如果i

2021-04-30 23:42:31 104 1

原创 D. 505(状压dp)

https://codeforces.com/problemset/problem/1391/D思路:我记得这个题我似乎去年碰到了。当时看了一眼就扔了。今年给补上了。这个题有个结论。就是n>=4&&m>=4的时候是-1的。所以不用存图。能找到的最小的子矩阵应该是2 * 2 ,如果一个2 * 2矩阵内含有奇数个1,那么四个2 * 2矩阵拼接形成一个4 * 4矩阵中肯定就含有偶数个1,所以如果n和m同时大于等于4,那么一定无法构造出符合题意的矩阵.那么手动模拟一下可以

2021-04-30 20:47:40 195 2

原创 C. Choosing flowers(贪心+二分边界)

https://codeforces.com/problemset/problem/1379/C思路:考虑答案情况,假如a[i]都买了,剩下的钱肯定挑一个b[i]最大的买完。我们注意到,最优的答案应该是剩下的钱都买某个物品了。那么我们可以枚举某个物品,对于其他>这个物品的b[i]的贡献能就都拿,剩下都拿这个物品的b[i].注意一下二分的边界。找大于等于的第一个位置再-1#include<iostream>#include<vector>#include<

2021-04-30 17:49:34 88 1

原创 D. Book of Evil(树的直径性质/树形dp树最长链)

https://codeforces.com/problemset/problem/337/D思路:找出在这颗树上距离最远的两只鬼,将它们的位置设为A,B。类似于树的直径,这颗树上的其余点具有这样的性质:如果某一个点到A和B的距离都不超过d,那么该点到其余鬼所在点的距离也不会超过d。否则,如果存在某一个鬼和该点的距离超过d,那么这个鬼所在的位置离A,B两点中某一点的距离大于A,B两点间的距离。证明就类似树的直径所以求包含所有被标记的点的最小子树的直径,然后比较其...

2021-04-30 15:10:02 162 1

原创 D. Maximum Sum of Products(区间dp)

https://codeforces.com/contest/1519/problem/D思路:刚好最近在整理区间dp。这题 看着像个区间dp.dp[l,r]为反转这段区间获得的新价值。然后递归[l+1,r-1]并且dp状态记录下来。#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include

2021-04-30 01:33:29 684

原创 Tolik and His Uncle(构造)

https://codeforces.com/contest/1179/problem/B又被吊打了。先考虑一行的时候,怎么构造,肯定是先走到头,然后再回来,再过去。考虑n行的时候也这样,类似于中心对称去构造。#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#inclu

2021-04-29 10:33:42 110

原创 C - Serge and Dining Room(思维+权值线段树)

https://codeforces.com/contest/1179/problem/C思路:思考x作为答案时候,条件是啥。就是大于等于x的商品个数 > 大于等于x的小朋友的钱的个数。那么对于这一单点点。维护好之后就是找后缀>0的最后位置。一个做法就是转化成维护前缀和区间修改。然后查区间最值来找到这个位置。插眼:cf393E#include<iostream>#include<vector>#include<queue>#

2021-04-28 22:40:00 160

原创 G.最大得分(连续长度dp)

http://acm.csust.edu.cn/contest/152/problem/G思路:如果按照枚举最后一段的长度去做,复杂度将到达O(n^2*k)的。无法接受。但是观察到gcd很小只有100。所以将gcd作为一维dp[i][j][k] 表示第i个数,当前部分的gcd为j,已经分到第k部分的答案对于第i个,要不和前面的合成一段。要不分开。对于分开:dp[i][a[i]][k]=max(dp[i][a[i]][k],dp[i-1][j][k-1]+a[i])...

2021-04-28 17:36:10 155

原创 D. Red-Green Towers(dp+滚动数组)

https://codeforces.com/problemset/problem/478/D思路:暴力的话n,i,j三层。直接炸了阿..但是层数的话不会太多,估摸着最多1000层,i,j的话其实存一个就好。因为当前总数能算,i有一个就能算j。dp[i][j]表示从上到下摆到第i层用j个红格子的方法数第i层摆红格子:dp[i][j]+=dp[i-1][j-i];摆绿格子的话,已经摆的绿格子为i*(i-1)/2 -j ,看剩下的能不能摆。能摆的话dp[i][j]+=dp[i-1][j].

2021-04-28 15:24:16 163

原创 C. The Hard Work of Paparazzi(最长上升子序列)

https://codeforces.com/problemset/problem/1427/C思路:暴力转移O(n^2)abs(x[i]-x[j])+abs(y[i]-y[j])<=t[i]-t[j] i<j 时dp[i]=max(dp[i],dp[j]+1)但是观察到图最大只有500*500.其最大的曼哈顿距离只有1000那么假设单调递增的人每次都相隔1,最多1000次,前面的人肯定都能到了。所以对于前面的,保证到达,没有必要再扫。直接处理一个最值的前缀O1.对于

2021-04-28 11:49:04 277

原创 P5656 【模板】二元一次不定方程 (exgcd)

https://www.luogu.com.cn/problem/P5656#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#include<set>#include<cstdio>#include<algorithm>#define.

2021-04-28 10:10:56 123

原创 C. K Integers(逆序对+二分中间位置)

https://codeforces.com/contest/1268/problem/C题意:思路:挺不错的一道题参考:https://blog.csdn.net/Q755100802/article/details/103664555相当不错#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath&

2021-04-27 22:23:53 94

原创 B. Domino for Young(二分图)

https://codeforces.com/contest/1268/problem/B思路:很神仙。二分图染色后取两个颜色后小的就是答案。据说是网络流建模经典...(麻了网络流又没补完)#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#include<set&gt

2021-04-27 20:22:51 197 2

原创 A. Long Beautiful Integer(构造+模拟)

https://codeforces.com/contest/1268/problem/A要不+1,要不不加就好#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#include<set>#include<cstdio>#include<algo

2021-04-27 19:50:59 113

原创 exgcd理解

https://www.luogu.com.cn/problem/P5656前言:以前一看到数论就爬...现在慢慢看..因为以后也没机会看了对于exgcd,用途是用来求不定方程的解。1.ax+by=c有解的充分必要条件是gcd(a,b)|c这点证明可以翻数论书阿..2.那我们更关心的是求解问题。刚前面说了有解的条件是gcd(a,b)|c;那么令(a,b)=d,a=a1d,b=b1d然后一通证明猛如虎得出一个通解形式x=x0-b1ty=y0+a1t这里的x.

2021-04-27 16:21:33 1029

原创 Add on a Tree: Revolution(思维+构造)

https://codeforces.com/contest/1188/problem/A2思路:注意找的是当前节点的两个儿子的叶子,不全是一个儿子下的叶子参考:https://blog.csdn.net/yopilipala/article/details/95652210?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-3.control&dist_

2021-04-26 21:10:10 102

原创 C. Array Beauty(dp好题)

https://codeforces.com/contest/1188/problem/C思路:那部分差分没懂干净阿....郁闷参考:https://www.luogu.com.cn/problem/solution/CF1188Chttps://blog.csdn.net/weixin_44178736/article/details/107777918?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&a

2021-04-26 19:17:28 153

原创 Count Pairs(同余)

https://codeforces.com/contest/1188/problem/B思路:知道同余两边可以加项减项后就可以直接做了#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#include<set>#include<cstdio>#inc

2021-04-26 15:11:42 177

原创 L3-029 还原文件 (30 分)(哈希+dfs)

不知道正解是啥。暴力dfs过了。我爬了#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#include<set>#include<cstdio>#include<algorithm>#define debug(a) cout<&l

2021-04-26 14:49:21 623

原创 A1. Add on a Tree(证明)

https://codeforces.com/contest/1188/problem/A1思路:证明参考:https://blog.csdn.net/Emm_Titan/article/details/99857428?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-1.control&dist_request_id=&depth_1-utm_

2021-04-25 23:50:34 121

原创 C. Quantifier Question(思维+建图+拓扑dfs)

https://codeforces.com/contest/1344/problem/C题意:从x1开始按顺序执行条件。是从小的序号点开始。而不是按照度数。可以发现对于x1,x2x1<---x2. 任意X1,存在X2 truex1--->x2, 任意X1, 存在X2 true且其他情况都是存在对于一个A,能到他的点和他能到的点都是E。对于他能到的点。dfs对于能到他的点,反边dfs然后topo判一下有无环#include<iostrea...

2021-04-25 19:59:49 114

原创 B. Monopole Magnets(思维+连通块)

https://codeforces.com/contest/1344/problem/B思路:开始看成了白块区域不能放S极了。看懂题意的话还是能做对的。1.如果有一行/一列存在不连续的黑块。 -12.如果有一行全空而不存在列全空。-1/反之亦然。剩下的就全部扔S极,每个连通块里扔一个N极就好#include<iostream>#include<vector>#include<queue>#include<cstring>#i

2021-04-25 19:56:01 139

原创 A. Hilbert‘s Hotel(数论)

https://codeforces.com/contest/1344/problem/A证明参考:https://blog.csdn.net/qq_43408978/article/details/108889203#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#i

2021-04-25 19:53:38 189

原创 L3-028 森森旅游 (30 分)

还没题单把..怪无语的这题。我开始把更新最值写反了。没想到还给过了样例,交上去就1分。然后就gg了。可能很多人没整体思路?先暴力吧。有26分?枚举中间的换钱点,对于前面纸币的,跑一个最短路。对于后面的旅游币,跑一个最短路。这时候有一个最值答案。但是维护的话单纯看是否有一个比当前值更小是不对的。因为如果一开始total存的就是最小值,假如说是第x个,然后现在把x的汇率改小了,那么你就要花更多的钱。此时答案是未知的。于是这里可以暴力阿..我真是麻了以后就该cccc先给暴力过去的。

2021-04-24 21:55:54 1192

原创 C. Konrad and Company Evaluation(图论+势能分析)

https://codeforces.com/contest/1229/problem/C思路:暴力的话算中间点的入度和出度。答案就是Σ入度*出度但是暴力修改的复杂度是多少呢。O(sqrt(m))不会证阿..又是个大坑https://www.cnblogs.com/LLTYYC/p/11580886.html然后vector[x]存比当前权值大的点。遍历的时候就可以直接修改了。#include<iostream>#include<vector>#

2021-04-24 09:47:47 414

原创 B. Kamil and Making a Stream(暴力+前缀gcd)

https://codeforces.com/contest/1229/problem/B思路:开始直接儿子logn跳,cf这么强的数据肯定有链子的数据,直接tle9.考虑到gcd的单调性,一条链子上最多只有logn个。两个角度理解:1.gcd每次减小要减少的话至少会少一个次幂的一次。假设是2的1次,那么就是logn的递减速度2.gcd(a,b)=gcd(b,amodb) mod运算每次至少会少一半。(两个不等式合并)因此我们从根节点跑一个前缀,map记录每个节点的前缀的gcd的距离

2021-04-23 22:06:49 296

原创 待补题单

https://codeforces.com/contest/1280/problem/D(树形dp)

2021-04-22 21:41:22 72

原创 B. Beingawesomeism(模拟)

https://codeforces.com/contest/1280/problem/B思路:分类讨论#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#include<set>#include<cstdio>#include<algori

2021-04-22 19:51:57 93

原创 C.Jeremy Bearimy(树上点对最大值/最小值边权总和)

https://codeforces.com/contest/1280/problem/C思路:参考:https://blog.csdn.net/qq_43682148/article/details/105297317?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-1&spm=1001.2101.3001.4242将具体的构造转化成算边的贡献进行思考。再分别贪心考虑最大值,最小值的情况下节点和父亲的边分

2021-04-22 18:41:41 195

原创 D. Cut(区间倍增)

https://codeforces.com/contest/1516/problem/D思路:首先要考虑到如何维护互质对。暴力怎么维护。肯定是跑一段到出现了区间内有两个数不互质的地方停止累加区间。预处理:把每个数分解了,对于当前位置能到达的区间更新成当前数分解出的因子处于的前面区间中的最近的地方。这样就把每个区间的段落其实划分好了。可是这么跑还是O(nq)的。这里还要一个倍增处理。当前位置往前跳的步数其实是单调的。从2^i的大到小,有一个满足之后就可以跳过去,最后凑成该区间的长

2021-04-22 16:15:59 153

原创 A. Cut and Paste(思维+模拟)

https://codeforces.com/contest/1280/problem/A思路:小于1e6的部分暴力。后面的直接算。注意ans%mod后会可能小于cur#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#include<set>#include&lt

2021-04-21 20:15:04 156

原创 D. Numbers on Tree(思维+构造)

https://codeforces.com/contest/1287/problem/D参考:https://blog.csdn.net/weixin_43826249/article/details/103855447首先证明:n个节点一定可以用1-n的数字去放。因为1-n的数字都是不同的,那么不会有相对大小的问题,不会有节点之间相互影响而导致答案错误。放相同值的节点也就是少一个差值,我们完全可以用放的方式去避免,比如小的放在大的上面。其次证明:如果节点的C值小于节点的size,那么一.

2021-04-21 16:37:48 138

原创 B. Hyperset(思维+暴力)

https://codeforces.com/contest/1287/problem/B思路:得知三个串搞定两个最后一个答案就确定了,于是map里算完发现C(2,3)每次是算了3次。#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#include<set>#in

2021-04-21 15:39:33 217

原创 C. Garland(记搜版本)

https://codeforces.com/contest/1287/problem/C思路:上次是用递推做的..这一次用记忆化做。两者感觉有一点不同,记搜来说代码可以更简短一点,而且是对于当前的状态,暴力dfs跑完之后可能的所有状态,然后回来的时候把最优答案比较出来然后记住。和下面这个传送的先处理好边界然后再跑各有妙处。传送#include<iostream>#include<vector>#include<queue>#include<

2021-04-21 15:35:34 104

原创 D - Miracle Tree(思维+构造+树的直径)

https://atcoder.jp/contests/arc117/tasks/arc117_d思路:比较明显的是树的直径把。然后构造:先从树的直径开始1,2,3...如果有分枝,先跑完分枝,然后到叶子了+1#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#i

2021-04-20 23:39:01 171

原创 C. Product 1 Modulo N(数论+打表)

https://codeforces.com/contest/1514/problem/C思路:证明日后补。打表:#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#include<set>#include<cstdio>#include<a

2021-04-20 18:16:27 262 1

原创 D - Cut and Stick(思维+莫队/主席树)

https://codeforces.com/contest/1514/problem/D思路:本质上推完结论之后就是求区间内众数的出现次数。对于直接找众数,主席树可做,算次数的话太久没做主席树了....很生疏。不过nsqrt(n)的莫队也可以阿。而且代码也很简洁。结论就是:把众数尽可能和其他数字能拼的拼在一起,最后剩下的都都是要减一个的。#include<iostream>#include<vector>#include<queue>#inc

2021-04-20 18:14:57 273

原创 ARC117 C - Tricolor Pyramid(思维+杨辉三角结论)

https://atcoder.jp/contests/arc117/tasks/arc117_c思路:讲真..很结论。上youtube看了眼cf上有人给的视频链接。确实是个组合数的应用结论。(帖子下就不要讨论科学上网了再结合官方题解。也就是说通过组合数就可以知道最底下的数对顶端的数的贡献。比如绿色0,蓝色1,红色2.顶端的答案就是 0+1*4+6*0+4*0+1*2=6 6mod3=0;所以是绿色。然后%3的组合数用lucas#include<iostre.

2021-04-19 20:20:46 309

原创 E. Tournament(思维好题+贪心/dp+树形结构)

https://codeforces.com/contest/1260/problem/E题意:n(n<=2^18)个人进行两两比赛,胜者晋级下一轮,败者淘汰第i个人的实力值是i,对任意一轮,你都可以指定还没淘汰的人如何配对比赛,用他们的实力值比大小。如果打不赢可以花钱让自己赢。求你的朋友最后成为冠军所花费的最小代价参考:https://blog.csdn.net/FSAHFGSADHSAKNDAS/article/details/103439470?utm_medium=.

2021-04-19 17:51:42 146

原创 D. A Game with Traps(贪心+二分+差分模拟)

https://codeforces.com/contest/1260/problem/D思路:二分后对于答案要拆的区间是要+3(过去回来再带走)剩下的就是走1次#include<iostream>#include<vector>#include<queue>#include<cstring>#include<cmath>#include<map>#include<set>#include<

2021-04-19 16:29:00 95

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除