摘要: #include #include using namespace std; const int maxn=100010; int a[maxn],b[maxn],t[maxn],n,ans; void read(int &k){ k=0; int f=1; char c=getchar(); while(c'9')c=='-'&&(f=-1),c=getchar(); while('0'... 阅读全文
posted @ 2017-11-03 16:49 Driver_Lao 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 【题解】 首先,我们可以发现,A到B的所有路径中,最长边的最小值一定在最小生成树上。我们用Kruskal最小生成树时,假设有两个点集U,V,若加入一条边w(u,v)使U,V联通,那么w就是U中每个点到V中每个点的路径上的最长边。因为我们每次在可选的w中选择了最小的,所以可以满足最长边最短的要求。 我 阅读全文
posted @ 2017-11-03 16:46 Driver_Lao 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 【Description】 Farmer John已经决定把水灌到他的n(1<=n<=300)块农田,农田被数字1到n标记。把一块土地进行灌水有两种方法,从其他农田饮水,或者这块土地建造水库。 建造一个水库需要花费wi(1<=wi<=100000),连接两块土地需要花费Pij(1<=pij<=100 阅读全文
posted @ 2017-11-02 18:50 Driver_Lao 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 【题意概述】 有n件物品,每件物品有体积Vi,背包容量为C,问最多可以装多少体积的物品 【题解】 显然是个无限背包嘛。。 直接做背包DP就好 注意无限背包的写法和01背包的区别 1 #include<cstdio> 2 #include<algorithm> 3 using namespace st 阅读全文
posted @ 2017-11-02 17:30 Driver_Lao 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 【题解】 我们可以发现,对于一只编号为a的兔子,a的父亲的编号是a-f[x],其中x为a出生的月份。 而计算a出生月份的方法是:找到第一个大于等于a的f[x],x即为a出生的月份。 那么我们只要不断的找a与b的父亲,直到它们相等即可。 1 #include<cstdio> 2 #include<al 阅读全文
posted @ 2017-11-02 08:11 Driver_Lao 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 【题意】 约翰留下他的N只奶牛上山采木.他离开的时候,她们像往常一样悠闲地在草场里吃草.可是,当他回来的时候,他看到了一幕惨剧:牛们正躲在他的花园里,啃食着他心爱的美丽花朵!为了使接下来花朵的损失最小,约翰赶紧采取行动,把牛们送回牛棚. 牛们从1到N编号.第i只牛所在的位置距离牛棚Ti(1≤Ti≤2 阅读全文
posted @ 2017-11-01 19:25 Driver_Lao 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 【题意概述】 给出一个01序列,初始时序列全为0,每次有修改操作或询问操作,修改操作要求把L~R区间中的0变成1,1变成0,查询操作要求输出L~R区间的1的个数 【题解】 线段树。 每次区间修改把区间的$sum$改为$len-sum$即可。 阅读全文
posted @ 2017-10-31 22:01 Driver_Lao 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 【题意概述】 给出N个数(10^6),求出最短的包含1~M(M≤2000)的连续子序列 【题解】 Two Pointer~~~ 1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 const int maxn=10000 阅读全文
posted @ 2017-10-30 19:52 Driver_Lao 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 直接写一波Lca就好了 1 #include<cstdio> 2 #include<cmath> 3 #include<algorithm> 4 using namespace std; 5 const int maxn=1010; 6 int n,m,x,y,z,ans=0,tot=0,dis[m 阅读全文
posted @ 2017-10-30 16:20 Driver_Lao 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 洛谷3383 1 #include<cstdio> 2 #include<algorithm> 3 #include<cmath> 4 using namespace std; 5 const int maxn=10000010; 6 int n,m; 7 bool a[maxn]; //a[i]为 阅读全文
posted @ 2017-10-27 16:36 Driver_Lao 阅读(359) 评论(0) 推荐(0) 编辑
摘要: 洛谷3367 1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 const int maxn=10010; 5 int n,m,x,y,k,fa[maxn]; 6 void read(int &k){ 7 k=0; int 阅读全文
posted @ 2017-10-27 16:16 Driver_Lao 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 【题解】 对于不同的最小生成树,每种权值的边使用的数量是一定的,每种权值的边的作用是确定的 我们可以先做一遍Kruskal,求出每种权值的边的使用数量num 再对于每种权值的边,2^num搜索出合法使用方案,把每种权值的边的方案用乘法原理乘起来就是答案了 1 #include<cstdio> 2 # 阅读全文
posted @ 2017-10-27 07:47 Driver_Lao 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 【题解】 先预处理出模N意义下的前缀和sum[i]。 1.如果sum[i]=0,那么1~i的数之和就是N的倍数 2.sum[i]%N总共有0~N-1这N种情况;根据1,如果sum[i]为0则必定有解;如果不存在sum[i]=0,那么根据抽屉原理,有N个前缀和,N-1种情况,那么一定存在sum[i]= 阅读全文
posted @ 2017-10-26 16:48 Driver_Lao 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 【题意概述】 给出一个x(x≤10^6),求出任意一个满足十进制中包含0~9十个数字并且是x的倍数的数 【题解】 思维题。。。 我们可以强制让这个数的开头是1234567890,这个数可以表示为1234567890000000+a 那么当这个数为x的倍数时,这个数为1234567890000000+ 阅读全文
posted @ 2017-10-26 16:13 Driver_Lao 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 洛谷3366 1 #include<cstdio> 2 #include<algorithm> 3 using namespace std; 4 const int maxn=5010,maxm=200010; 5 int n,m,fa[maxn],tot=0,ans=0; 6 struct edg 阅读全文
posted @ 2017-10-26 10:41 Driver_Lao 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 二分+特殊姿势的check:二分最小代价P,把边权小于等于P的边设为0,其他的设为1,跑一遍最短路,判断dis[n]是否大于K 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #include<queue> 5 using 阅读全文
posted @ 2017-10-26 08:16 Driver_Lao 阅读(170) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2017-10-25 20:39 Driver_Lao 阅读(8) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2017-10-24 21:57 Driver_Lao 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 用sum[i]表示前缀和模7的值,若存在i≤j,满足sum[i]==sum[j],则区间(i,j]的和为7的倍数。 O(N)扫出sum[0]~sum[6]第一次出现的位置first和最后一次出现的次数last,答案即为Max(last[i]-first[i]) 1 #include<cstdio> 阅读全文
posted @ 2017-10-23 18:47 Driver_Lao 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 【题意概述】 给出一个只有小写字母的序列,问最少把序列分成几段可以满足每一段可以通过变换成为回文串。变换指的是交换子序列中的字母的位置。 【题解】 我们把a~z分别设为2^0~2^25,每个子序列满足条件当且仅当子序列异或和为0或2的n次幂。 我们用sum[i]表示前缀异或和,用f[i]表示1~i的 阅读全文
posted @ 2017-10-23 16:35 Driver_Lao 阅读(285) 评论(0) 推荐(0) 编辑