01 2020 档案

摘要:A.傻子题.. B.就让你把相邻或自身的俩俩配对,不能跨度大于1, 直接考虑先把自己配对了,那么剩下的只能和相邻的配对了 但考虑到可能存在跨度大于1,且俩俩为奇数的情况,考虑在配对自己时给别人留一点... 然后就得到了算法... C.大水题.只用考虑到奇数位,偶数位交换不用代价.然后拍完序后乱搞就好 阅读全文
posted @ 2020-01-30 18:04 After_rain 阅读(90) 评论(0) 推荐(0) 编辑
摘要:嘛....你把题目读一下,你就会发现,假如我们根据能不能形成质数的关系相加, 出来的一个东西满足当一个集合存在该元素,则改集合一定不存在其他有这种关系的元素 然后你写几个样例....你就会发现我们要求的是最多能在一个集合内加入多少个这个东西 很显然就是最大独立集.... 阅读全文
posted @ 2020-01-29 21:01 After_rain 阅读(122) 评论(0) 推荐(0) 编辑
摘要:水题... 按照之前的做法,把支不支持的分为两类,各与S,T连边,互为朋友直接连边....然后直接跑最小割即可 正确性下显然.因为割边等价于把任意一个朋友变为相反...(解决了矛盾.....) 就没了... 哦,注意把朋友间连边(这个连的是双向边!) 阅读全文
posted @ 2020-01-29 20:45 After_rain 阅读(79) 评论(0) 推荐(0) 编辑
摘要:有思路,先记录一下思路, 可以把炸弹炸到的范围看成一段.... 那么很显然,每一段只能有一个炸弹,那么只要把这些段拆点,很显然,转换为了网络流问题,列同理 然后直接跑最大流就ok了.... 阅读全文
posted @ 2020-01-29 20:35 After_rain 阅读(102) 评论(0) 推荐(0) 编辑
摘要:最大流大水题,不过注意要把书拆点,只能用一次 阅读全文
posted @ 2020-01-29 20:22 After_rain 阅读(96) 评论(0) 推荐(0) 编辑
摘要:又是一道好题...(不会做...) 题意很显然啦... 考虑建模...(有大佬说蓝题..(不知道是不是因为数据水的原因...)) 正解是上下界网络流 当然我不会 于是我使用了一个比较符合胃口(看的顺眼的假方法) 最大流 直接先补集转换...考虑到正的来,那个至少很棘手 然后至少就变成至多了.... 阅读全文
posted @ 2020-01-29 20:00 After_rain 阅读(83) 评论(0) 推荐(0) 编辑
摘要:建模题太久没做,做傻了.... 其实很好想,如何转化冲突,,,, 嘛考虑到冲突有3种解决方法,a换,b换,或者吃掉冲突(都ans+1) 考虑用割的方式思考,a换,相当于把与a冲突的所有关系都删去.. 但吃掉冲突相当于把这个关系给吃掉... 那么有没有必要按照惯性思维把任何一点的选项列出来? 考虑吃掉 阅读全文
posted @ 2020-01-29 15:48 After_rain 阅读(78) 评论(0) 推荐(0) 编辑
摘要:#include<bits/stdc++.h> #define MAXN 400005 using namespace std; int n,q,a,b; string tp; int date[MAXN],bianhao[MAXN]; struct Splay{ int num[MAXN],ch[ 阅读全文
posted @ 2020-01-29 01:21 After_rain 阅读(111) 评论(0) 推荐(0) 编辑
摘要:这个题集好好,那天我做一下(开个大坑?) 嘛,题目难的是查询,这里就只讲查询了 根据题解,我们用线段树维护3个东西 lx:表示从lx走,所能在给定区间里面的最大值 rx:参考上面 mx:表示在给定区间中间截取一段所能取到的最大值 那么对于题目给定的查询区间(假设其为L,R) 我们用线段树去遍历这个区 阅读全文
posted @ 2020-01-27 22:10 After_rain 阅读(108) 评论(0) 推荐(0) 编辑
摘要:#include<bits/stdc++.h> #define MAXN 600005 using namespace std; int n,m,fa[MAXN],date,q; int num[MAXN],ch[MAXN][2],sz[MAXN],f[MAXN],cnt[MAXN],tot,zhu 阅读全文
posted @ 2020-01-26 23:22 After_rain 阅读(111) 评论(0) 推荐(0) 编辑
摘要:您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 插入 xx 数 删除 xx 数(若有多个相同的数,因只删除一个) 查询 xx 数的排名(排名定义为比当前数小的数的个数 +1+1 ) 查询排名为 xx 的数 求 xx 的前驱(前驱定义为小于 xx,且最大的数) 求 xx  阅读全文
posted @ 2020-01-26 17:18 After_rain 阅读(98) 评论(0) 推荐(0) 编辑
摘要:#include<bits/stdc++.h> #define MAXN 300005 using namespace std; int n,m,a,b; struct Splay{ int num[MAXN],ch[MAXN][2],sz[MAXN],f[MAXN],cnt[MAXN],rt,to 阅读全文
posted @ 2020-01-26 17:16 After_rain 阅读(93) 评论(0) 推荐(0) 编辑
摘要:先挖个坑,明天下午写 阅读全文
posted @ 2020-01-23 23:46 After_rain 阅读(88) 评论(0) 推荐(0) 编辑
摘要:补一发欠下的题解... A.题意: 给你四个正整数a,b,c,n问你能不能找到3个正整数A,B,C,满足A+a=B+b=C+c,且A+B+C==n 通过对题目的推导,只要这个成立就ok n-2*c+a+b=3C 又因为可能出现负数,所以要再判断一下 #include<bits/stdc++.h> u 阅读全文
posted @ 2020-01-23 20:18 After_rain 阅读(242) 评论(0) 推荐(0) 编辑
摘要:挺有意思的一道题,嘛,还是那句话,不要被固有思维给限制了 嘛,我一开始找点来逐步分析,而后才看了题解发现时找边的关系,我很容易找题目不关紧要的条件啊..... 首先这个题有两种建图方法 第一种,直接把minl maxl串起来,流量无穷大,费用为0,然后对于一个区间,Li,Ri 从Li Ri连一条边, 阅读全文
posted @ 2020-01-22 20:45 After_rain 阅读(123) 评论(0) 推荐(0) 编辑
摘要:嘛,你把图分类一下 分成横坐标+纵坐标为奇偶... 然后在图上跑一个二分图最大权匹配 然后就是max(ans, 全部的-ans) 我代码写得有点... 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int inf=9999999; 5 in 阅读全文
posted @ 2020-01-22 01:09 After_rain 阅读(188) 评论(1) 推荐(0) 编辑
摘要:#include<bits/stdc++.h> using namespace std; int k,n; int tot=-1,h[3005],ans=0,sum=0; struct node{ int from,next,to,rest,full; }e[100005]; void add(in 阅读全文
posted @ 2020-01-22 01:06 After_rain 阅读(163) 评论(0) 推荐(0) 编辑
摘要:有两个引理 设Fi为以i结尾的最长递增子序列 1.当Fi为1是,i 可能是后面最长递增子序列的起点 2,当Fi取最大值时,同时有多个,那么这多个都是前面最长递增子序列的终点 根据这个性质来网络流.... 就没了 建边条件也很好想 1 #include<bits/stdc++.h> 2 using n 阅读全文
posted @ 2020-01-22 01:03 After_rain 阅读(219) 评论(0) 推荐(0) 编辑
摘要:比较有意思的题 题意:给你n个柱子,问你可以在上面放多少个编号连续且每根柱子上相邻的编号为平方数的球洗澡时候想的,根据平方数这个关系建边,然后枚举多少个柱子,然后再在图上跑最小路径覆盖,若路径条数大于柱子数,那么珠子数-1就是答案 我写的有点....t了,但不想改 #include<bits/std 阅读全文
posted @ 2020-01-22 01:00 After_rain 阅读(171) 评论(0) 推荐(0) 编辑
摘要:网络流水题,详细看代码 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int n,m,tot=-1,h[3005],ans=0,sum=0; 5 struct node{ 6 int from,next,to,rest,full; 7 in 阅读全文
posted @ 2020-01-22 00:58 After_rain 阅读(134) 评论(0) 推荐(0) 编辑
摘要:这我没什么好说的,那天补个证明 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int m,n,tot=-1,h[10005],ans=0; 5 struct node{ 6 int from,next,to,rest; 7 int last 阅读全文
posted @ 2020-01-22 00:57 After_rain 阅读(108) 评论(0) 推荐(0) 编辑
摘要:1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int m,n,tot=-1,h[10005],ans=0,bianhao[505][505],co[505],sum=0; 5 bool wll[10005]; 6 struct node{ 阅读全文
posted @ 2020-01-22 00:56 After_rain 阅读(108) 评论(0) 推荐(0) 编辑
摘要:#include<bits/stdc++.h> using namespace std; int m,n,tot=-1,h[1005],ans=0,tp=0; struct node{ int from,next,to,rest; int last; }e[10005]; void add(int 阅读全文
posted @ 2020-01-22 00:53 After_rain 阅读(102) 评论(0) 推荐(0) 编辑
摘要:过水不解释 #include<bits/stdc++.h> using namespace std; long long tot=-1,sum=0,h[1005],flow[1005],g[1005],ans=0,dis[1005],ans2=0,inf=999999; bool vis[1005] 阅读全文
posted @ 2020-01-22 00:51 After_rain 阅读(105) 评论(0) 推荐(0) 编辑
摘要:直接拆点做,但就是搞不懂为什么wa掉了第一小问.... 不管了 #include<bits/stdc++.h> using namespace std; long long tot=-1,sum=0,h[20005],flow[20005],g[20005],ans=0,dis[20005],ans 阅读全文
posted @ 2020-01-22 00:18 After_rain 阅读(137) 评论(1) 推荐(0) 编辑
摘要:这个题非常的好,真的......我半颓半打,打了一下午最后还是去看了题解,,,, 这个题对限制条件的转换非常的好 先贴代码 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 long long tot=-1,sum=0,h[10005],flo 阅读全文
posted @ 2020-01-21 19:27 After_rain 阅读(108) 评论(0) 推荐(0) 编辑
摘要:【BZOJ3144】【HNOI2013】切糕首先考虑没有D限制,直接贪心选取,或者跑点点之间连边,跑最小割若D限制了,改一下建图就ok了【BZOJ1001】【BeiJing2006】狼抓兔子直接建边后跑网络流,不过注意,题目是无向图,反向边流量相同【BZOJ1002】 [FJOI2007]轮状病毒摘 阅读全文
posted @ 2020-01-21 12:47 After_rain 阅读(133) 评论(2) 推荐(0) 编辑
摘要:HELLO WORLD 阅读全文
posted @ 2020-01-21 00:23 After_rain 阅读(82) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示