自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 收藏
  • 关注

原创 CF 408C Triangle 勾股数+简单几何

题意:给出直角三角形的两条直角边长度a,b.并且三条边都不与坐标轴平行,问能否构造出满足题意的三个整数点.a,bemmm.什么时候无解呢? 因为三条边都不能平行于坐标轴 所以边一定是斜着的 又因为要整数点 所以在方格图中a一定可以表示为x^2+y^2=a^2所以a,b为勾股数.找到(x,y)满足 x^2+y^2=a^2 然后令其中一个坐标为(0,0). (-x,y) 和(p,q

2017-09-30 23:08:06 281

原创 CS R22 C(dfs暴力),D(字符串循环节,模拟),E(贪心+线段树维护)

Problem C:题意:n*m矩阵只包含01,每个1可以到达相邻4个1上n,m先dfs一遍对每个联通分量编号并记录其size.枚举要改变的格子,算新产生的联通分量size.只要把它上下左右4个1联通分量编号记录下来(防止重复),最后加上其size即可.#include using namespace std;typedef long long ll;const in

2017-09-30 16:58:25 278

原创 CS R20 C(贪心+二分) D(套路(n后第k个合法数)二分+数位DP.) E(好题:回文,字符串哈希)

Round 20:Problem B:题意:给出[1..n]排列,找到一对(i,j) 要求i记录每个数位置以后 按数值排序,则比a[i]大的a[j]都在a[i]之后 和a[i]最大距离为mx-pos,找到此时后缀i位置的最大值mx即可.#include using namespace std;typedef long long ll;const int N=2e5+20;s

2017-09-28 13:38:09 267

原创 CF 820D Mister B and PR Shifts 差分(区间+k*(x-L)+b)

题意:给出[1..n]排列p 定义偏差值为segma(p[i]-i) i=1..n操作:将每个元素向后移一位,最后一个元素移动到开头.n操作一次,循环右移一次,最多n种不同排列.令d[i]为i次操作后的偏差值.现在考虑p[k]在d[i]中的贡献.d[0]+=|p[k]-k| d[1]+=|p[k]-(k+1)| ... d[n-k]+=|p[k]-n|,d[n-

2017-09-27 19:21:44 410

原创 CF 373D Counting Rectangles is Fun 单调栈+DP

题意:n*m的01矩阵,q次询问,每次询问左上角为(a,b),右下角为(c,d)的矩形中 有多少个全0的子矩形?n,mn,m类似二维前缀和 dp[a][b][c][d]=dp[a][b][c-1][d]+dp[a][b][c][d-1]-dp[a][b][c-1][d-1]+fun(a,b,c,d)calc计算(c,d)为右下角,左上不超出(a,b)时,有多少个全0子矩形

2017-09-27 14:17:54 308

原创 CF 320D Psychos in a Line 链表维护(递增序列)

题意:给出长度为n的排列a, 每一轮同时删除若干个数,若a[i]n,a[i]最后的序列为非递减的,否则还能继续操作.每次删除的是一段连续的递减子序列(开头不删).当a[i]>a[i+1]时则删除a[i+1] 用链表来记录当前元素的下一个元素位置.也就是当a[i]>a[nxt[i]]时 删除a[nxt[i]] 然后令i=nxt[i]继续往下删除.然后用队列来维护当

2017-09-26 11:34:27 238

原创 51Nod 1536 不一样的猜数游戏

题意:[1..n]内随机一个数x,每次可以问x是不是y的倍数.n也就是说不管x是1到n之间的哪个数字只要问那些问题就能够确定那个数字了.样例n=4,则无论x是什么 只要问y=2,4,3,就能确定x.假如只问2,3 当回答yes,no时则不能确定x是2还是4.p为某素数,p^k现在提问序列有#include using namespace std;ty

2017-09-26 09:36:06 198

原创 CF 652 C(思维好题) D(排序+BIT维护) E(边双联通分量+缩点).

题意:给出[1.n]排列的序列a,m对数(xi,yi) 定义区间合法为:区间不能包含着m对数中的任意一对,即x[i],y[i]不能同时出现在一个区间,问有多少个区间为合法的? n,m首先注意到若[l,r]为合法区间 则[l+1,r]肯定也为合法区间.尝试用two pointer解决 发现正着做好麻烦 移动l时还要删除操作.[l,r]为合法,[l,r+1]为非法 则l-1开头的左

2017-09-23 10:22:36 305

原创 HDU 4745 Two Rabbits 最长回文子序列

题意:n个石头围城一圈,第i个石头权值为a[i].两个人初始可以在任意一个石头上.A只能顺时针跳,B只能逆时针跳,每个人都不能跳到自己已经跳过的石头 并且也不能跳跃过去,比如石头2被踩过,则0->4跳跃非法.每一个轮两人同时起跳 要求每轮两人所在的石头的权值都相同,问最多能玩多少轮? n,a[i]样例:211213 答案为5 感觉是字符串匹配.顺时针写两次,破环成链.一个顺时针

2017-09-22 14:12:35 187

原创 HDU 4739 Zhuge Liang's Mines 暴力 or 状压.

题意:给出平面上n个点(x,y) 若4个点形成正方形(本题只要求平行于坐标轴的),则可以删除这4个点.删除的点不在考虑.n一个点配成正方形方案有多种时,其配对方式可能会导致答案不同(可以举例 不能随便配对.)暴力dfs生成所有方案.枚举一个点为左上角,x,y#include using namespace std; const int N=3e2+5;struct n

2017-09-22 10:26:34 268

原创 HDU 4740 The Donkey of Gui Zhou 暴力

题意:n*n地图,初始两人在(ax,ay),(bx,by) 初始方法为da,db.两人都不走自己已经走过的地方,若a下一步非法,则改变方向(按顺时针变),b也是如此(按逆时针变),n模拟a,b行走过程 记录其路径后 最后扫一遍路径看是否有相同坐标即可.注意有一方无法移动时会停留在某个点.#include using namespace std;typedef long lo

2017-09-21 22:22:05 207

原创 HDU 4738 Caocao's Bridges 无向图割边(水)

oblem A:求权值最小的割边就好了.注意几个坑点  割边权值为0时 至少要派一人.这题数据似乎无重边#include using namespace std; const int N=2e3+5;const int M=1e6+5;struct EDGE{ int u,v,id,next,w;}edge[M*2];int first[N],low[N],dfn[

2017-09-21 22:01:51 178

原创 BZOJ 2460 元素 线性基+贪心

线性基是一种特殊的基,它通常会在异或运算中出现,它的意义是:通过原集合S的某一个最小子集S1使得S1内元素相互异或得到的值域与原集合S相互异或得到的值域相同。性质:线性基能相互异或得到原集合的所有相互异或得到的值。线性基是满足性质1的最小的集合线性基没有异或和为0的子集。题意:n个矿石,第i个矿石有编号num[i]和价值val[i] num[i]问从n个中选出若

2017-09-21 10:32:51 233

原创 HDu 4762 Cut the Cake 概率(推公式,积分)

题意:一个蛋糕切成相等的m块,然后n个物品随机放,问随机取出一块能取到n个物品的概率? n,m选任意两个物品作为边界 n*(n-1),其角度范围为[0,1/m] (总的角度可以看作m度)剩下n-2个都要在这之间 x^(n-2)对x[0,1/m]积分.最后答案为n*/(m^(n-1)) 高精度一下即可.    #include using namespace std;typedef

2017-09-21 09:59:27 205

原创 CF 845D Jury Meeting 枚举断点+前缀后缀

题意:n+1个city,city[0]为中心,其余n个city每个city都住一人,有m条边进出city[0].边参数为:d[i],f[i],t[i],c[i]表示该边可以在第d[i]天使用 从f[i]飞到t[i]代价为c[i](f[i]或t[i]=0)n,m 枚举开会时间为第t天 则第i个人只要在[1..t-1]天达到(选这些天内到0航班的最小值).然后再[t+k+1,1e6]选

2017-09-20 16:17:52 169

原创 CF 862C Mahmoud and Ehab and the xor 构造

题意:构造出n个不同的数字a[i](a[i]若有解 输出任意一个可行解.当n==2 x==0时 显然只能为两个相同的数 此时无解,否则一定有解.构造:n若y==x 则剩下三个为pw,pw*2,pw^(pw*2).若y!=x 则剩下为0,pw,(pw^x^y) (当y==x时 会出现两个pw,pw).#include using namespace std;typedef

2017-09-20 10:07:22 411

原创 HDU 5573 Binary Tree 构造(二进制)

题意:结点无限个的满二叉树,从左到右按顺序编号a[u](能量).在结点u可以选择吸收/释放能量a[u].nn构造:令all=2^k-1,dif=all-n dif本来是不选的bit位,则只要令不选为dif/2的,因为其变为负数.最终结果为(all-dif/2)-dif/2=n 可以构造 (当dif为奇数 最后一步走右儿子,让all=2^k即可)#include usi

2017-09-19 21:46:07 294

原创 HDU 5584 LCM Walk 数论

题意:操作:假如当前点为(x,y),z=lcm(x,y) 则下一步可以走到(x+z,y)或者(x,y+z)坐标为非负数,给出终点(x,t),问有多少个初始点可以经过若干次操作后到达终点? x,y无论怎么操作 路径所有点的gcd都是相同的为gcd(x,y)设g=gcd(x,y) 则x=ag,y=bg lcm(x,y)=a*b*g 下一个点坐标其中一个为(x1,y1)=(x+lcm

2017-09-19 16:20:03 304

原创 HDU 5514 Frog 容斥(技巧)

题意:编号为[0,m-1]的石头围成一圈,n只frog在起点0,第i只frog每次跳a[i]距离.n第i只青蛙 第x次在编号为(x*a[i])%m的石头上.a[i]*x +m*b =k*gcd(a,m) 两边同时%m( a[i]*x )%m=(k*gcd(a,m)) %m 则第i只青蛙落在的石头和编号k*gcd(a[i],m)可以一一映射.(k*gcd(a,m)>m 则多余

2017-09-19 11:13:53 288

原创 HDU 5521 Meeting 建图+最短路

Problem M:题意:n个点的图,现在有m个集合,第i个集合为e[i],有s[i]个点,集合e[i]内的点都可以互相到达并且时间为t[i].n直接加边,边数太多显然不行.建图:对第i个集合 增加一个源点,每个点向源点连t[i]代价的边,此时跑出的最短路为原先的两倍,除以2即可.求出源点1出发 和源点n出发的最短路 枚举最后的终点 答案为min(mn,max(d[1]

2017-09-19 09:05:52 288

原创 HDU 5510 Bazinga 双指针+KMP.

题意:n个string s[i],若第i个string是合法的 则存在(1n暴力配的话O(n^2*len) len最坏为1e6.TLE.双指针:s[l],s[r]为当前待匹配的两个串当s[l]==s[r] l++;当s[l]!=s[r] 则r为一个可行解 r++ .r+1不用再考虑l之前的串 s[j]为s[l]之前的某个串.并且s[j]肯定为[l,r)内某个串的子串.若

2017-09-18 20:09:23 360

原创 Xor 分段处理+LCA.

题意;n个结点的树,点带权,q次询问,问从a到b路径为t0,t1...tm,问路径上每k个点异或一次的值为多少? nk>sqrt(n)时 显然可以暴力往lca上跳,因为是从x->y,y往上跳时,第一次要跳dis%k.k#include #define rep(i,m,n) for(i=m;i<=(int)n;i++)#define inf 0x3f3f3f3fconst i

2017-09-18 09:46:00 377

原创 HDU 6208 The Dominator of Strings AC自动机

题意:长度最长串为母串 问其余n-1个串是否都能在母串中匹配 ,总字符长度AC自动机匹配数为n则有解.query时不重复统计以标记结点.#include using namespace std;typedef long long ll;const int N=1e5+20,M=1e5+5; struct AHO{ int chd[N][26],v[N],f[N],last[

2017-09-18 08:15:56 387

原创 HDU 5307 He is Flying 构造多项式+FFT

题意:n个点 每个点价值为v[i],区间[l,r]的长度为r-l+1 区间价值为该区间内所有v[i]之和.n答案:res[s[i]-s[j-1]]+=i-j+1 s[i]为前缀和i .O(n^2) TLE...参考 S肯定也要指数,系数要体现和为S的区间的长度,则用两个前缀相减来表示构造多项式:(∑ixsi)(∑x−si−1)−(∑xsi)(∑(i−1)x−si−1

2017-09-17 10:22:24 224

原创 HDU 5889 Barricade 最短路+最小割

题意:n点m条边的图,每条边长度都为1,堵住第i条边需要代价w[i],敌人每次从n走到1都走最短路.n为源点,1为汇点,把n-1最短路上的边加到网络流的图中,容量为堵住这条边的代价,则求s-t的最小割 等价于求最大流d[u]有些不在s-t最短路上的边可能也会被加入(但不影响,因为沿着该边最后一定无法到t)#include using namespace std;const in

2017-09-16 21:00:27 247

原创 HDU 5044 Tree 树链剖分+差分

题意:n点m条边的带权树,点边都带权,Q次操作.op1:将u,v路径上所有点的权值加k.op2:将u,v路径上所有边的权值加k.n,m操作为区间+,查询只要最后一次,可以不用线段树,破树成链以后,用两个数组差分一下就好了.#pragma comment(linker, "/STACK:1024000000,1024000000") #include usin

2017-09-16 10:08:11 250

原创 HihoCoder 1388 Periodic Signal 循环卷积(FFT)

题意:给出n个数的序列a,b ,n拆来后得: tot - 2*max( a[i]*b[(i+k)%n] i=0~n-1 )k=0,..n-1)先写成矩阵形式后,也就是要求这n个乘积累加和中的最大值.循环卷积的构造方式:点击打开链接构造两个多项式,a[0]+a[1]*x+a[2]*x^2+..a[n-1]*x^(n-1).b[n-1]+b[n-2]*x+.....b[0]*x^(

2017-09-15 20:03:33 853

原创 Query on a string 暴力+树状数组

题意:给出母串s和字符串T,Q次操作.操作1:把s的第i个字符修改为ch.操作2:询问s[i,j]中,T出现了多少次?Q,|s|令f[i]标记s[i]结尾能否匹配字符串T.对于查询操作只要query(l+len2-1,r)因为还有修改操作,又因为|T|f[i]的前缀和是变化的 用树状数组来维护即可.O(Q*|T|^2*logn). #include using n

2017-09-15 14:19:46 161

原创 HDU 4609 3-idiots 计数+FFT

题意:n个数的序列a 问从中选出三个数构成三角形的概率?n,a[i]暴力O(n^3)的做法肯定是TLE的.排序后,我们枚举最后一个选的数为下标i,则前两个数下标j,ka[k])有多少对这样的数? 先求有多少对数的和为a[i],利用前缀和就能求出大于a[i]个数.令 c[k]^x^k表示数k的个数有c[k]个.我们可以列出两个相同的生成函数,其乘积第k项的系数也就是和为k的方法数

2017-09-15 10:22:44 222

原创 BZOJ 1029 建筑抢修 贪心(替换)

题意:n个建筑,修理第i个建筑需要a[i]秒 第i个建筑,若在第b[i]秒时还没被修复,则永远无法修复.n贪心:明显先让deadline早的先修,然后排序一下,然后就wa了....如果当前第i个修不了 但是取消已经修过中消耗时间最大的,然后用当前a[i]来代替.若第i个变为可行,则维修个数不变 并且当前时间缩短.显然更优,用优先队列维护即可 (好骚的操作.)#include

2017-09-14 16:44:37 241

原创 CS R19 C(套路,二分or two pointer). D(构造,相邻位不同,字典最小),E(???)

Problem B:套路:暴力确定前两个(或者一个)配对状态 则剩余状态也能确定. 这种类型前期感觉经常出.Problem C:题意:一条直线先有n个点 每个点在位置x[i],价值为a[i],初始在s点 最多走K单位距离.n从s起 刚开始向左 或者 向右  然后最多改变一次方向(一直改变方向不是很迷...)然后枚举刚开拿了左边多少个点,二分最远还能到右边哪一个点.对于初始右

2017-09-14 15:37:51 296

原创 BZOJ 1096 仓库建设 斜率DP

题意:n个工厂在一条直线上,第i个工厂有p[i]件产品.坐标为x[i],在第i个工厂建立仓库花费为c[i].现在每个工厂的产品要么到自己建立的仓库中要么到其下一个编号比它大的仓库中.(运输费用为距离*运输数量)n因为只能编号小的只能往编号大的运 所以可以设置dp[i] 前i个需要的最小费用 并且在第i个建立工厂.dp[i][1]=c[i]+min(dp[j]]+co

2017-09-14 12:18:40 151

原创 CS R17 C(思维DP) D(二进制,淘汰) E(好题:博弈+DP)

题意:给出排列a,操作:将任意一个数放到开头或者结尾.n显然每个元素只要移动一次,若同一个元素有多次移动,则用其最后一次移动 造成的效果是相同的.每个元素要么不移动要么移动一次, 求最少需要操作元素 -> 求最多不需要操作的元素有多少个?假如不需要移动的元素集合S 则S显然为连续的一段数,否则需要移动.设dp[a[i]]为以a[i]结尾的最长的一段连续序列,dp[a[i]]

2017-09-13 12:47:02 253

原创 BZOJ 1088 扫雷MIne 枚举

题意:n*2棋盘,第一列里面某些格子是雷,而第二列没有雷.如果某个格子没有雷,那么它里面的数字表示和它8连通的格子里面雷的数目.n刚开始还想着保存前两行状态然后DP ...完全没必要.如果a[i-2]和a[i-1]确定以后,a[i]受b[i-1]限制也确定下来.则枚举前两个元素后,其余元素也就确定下来了.#include using namespace std

2017-09-12 16:35:05 199

原创 BZOJ 1059 矩阵游戏 二分图匹配

题意:n*n(01)矩阵,操作:交换任意两行或者任意两列. n原本在同一行或者同一列的点,经过操作后,还是在同一行或者同一列,同行同列上的两个点肯定不能同时作为主对角线元素问题可以理解为 能否找到n个黑点,其任意两个不同行并且任意两个不同列.二分图建图:左边为行 右边为列 若a[i][j]为黑点 则i->j连边. (i,j)边若在匹配被选中,则表示把(i,j)行换到(j,j

2017-09-12 15:03:09 229

原创 CS R14 C(模拟+二维前缀和) ,D(好题,前缀第i位异或+滑动区间),E(树计数+DP(前缀和优化))

Round 14:Problem C:题意:n*m(01)矩阵,n,m画几个样例 可以发现任意一个合法的全1子矩形都形成一个全'1'联通分量.dfs搜出全1的联通分量 并记录左上和右下位置.不能落在边界.在利用行/列前缀判断左上和右下一圈是否都为0,二维前缀和判断搜出来的子矩形是否全部为1即可.#include using namespace std;typedef l

2017-09-12 13:36:10 473

原创 BZOJ 1009 GT考试 KMP+矩阵快速幂.

题意:b为非法数字b[1]...b[m],其位数n 先不考虑n范围 则可以设置dp[i][j]表示放了合法放了前i位,其后缀j和非法的前j位相同的方法数.转移状态显然是一位一位添加显然dp[i+1][j+1]+=dp[i][j] 添加b[j+1] 若新添加的a[i+1]!=b[j+1] 算出此时a的后缀能匹配b的最长前缀是多少.联想到kmp,枚举匹配到i然后再枚举新

2017-09-11 17:40:17 305

原创 BZOJ 1087 互不侵犯King 状态压缩DP

题意:在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案。国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子,nn则一行一行放 预处理(i,j)两个状态是否可以为相邻行后,合法转移状态即可#include using namespace std;typedef long long ll;const int N=2e3+20;bo

2017-09-11 15:11:14 191

原创 CS R12 C(排序),D(思维(二进制)),E(计数,分类大讨论)

Round 12: Problem C题意:给出n个二元组(wi,hi) 若不存在j同时满足 wj>wi && hj>hi 则称j为合法的.n按w从小到大顺序排序,维护一个h非单调递增的单调栈 则最后栈中元素为合法的wa! 相等的w 较大的h会淘汰掉小的h.排序时将相等的w h从大到小排序即可.#include using namespace std;typedef

2017-09-11 11:15:47 231

原创 CS R46 C(思维套路),D(好题,数据结构维护) E(???)

题意:长度为n的序列a,其每个元素减去一个正数X得到序列bnmn肯定为序列b元素,并且有个元素在序列a中和它对应(枚举该元素即差值)则接下来未被标记中最小的肯定也为序列b元素,(若为序列a元素,则要存在一个比它小的能和它配对)根据差值 用map记录其对应元素.#include using namespace std;typedef pair ii;typede

2017-09-07 23:41:56 201

空空如也

空空如也

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

TA关注的人

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