自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ren_Ivan的博客

Life isn't about waiting for the storm to pass. it's about learning to dance in the rain.

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

原创 bzoj 4173 打表???

没有任何思路,打表发现ans=phi(n)*phi(m)*n*m %%% popoqqq Orz 然而并没有看懂……#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<cmath>#define mod 998244353llusing namespace std;long

2017-08-12 17:11:10 346

原创 bzoj [Noi2002]Savage 扩展欧几里得

枚举m,n^2判断对于野人i,j,(H[i]+x*S[i])%m==(H[j]+x*S[j])%m,且x化简得:(S[i]-S[j])*x+y*m=C[j]-C[i],扩欧解x最小值,判断#include#include#include#include#include#define N 18using namespace std;int H[N],S[N],O[N],n,

2017-08-12 16:22:02 433

原创 bzoj 3505 [Cqoi2014]数三角形 组合

ans=所有的三点排列-共行的-共列的-斜着一条线的斜着的枚举每个点和原点的gcd,反过来也可以,还能左右,上下挪#include#include#include#include#includelong long ans,line,row,tot,n,m;int gcd(int x,int y){return y==0?x:gcd(y,x%y);}int main(){ s

2017-08-12 15:14:20 274

原创 bzoj 2820 莫比乌斯反演

搞了一整个晚自习,题解详见 hzwer Orz 目前感觉没有思路….还是要多切题#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<cmath>using namespace std;const int N=10000000;long long ans,f[N+5];int

2017-08-12 07:25:11 318

原创 Travel 并查集

题意:给一个图,若干询问,每次询问只经过边权并查集啊,对询问和边排序,直接合并,维护size,查询#include#include#include#include#include#define N 105000using namespace std;int fa[N],size[N],n,m,k;struct data{ int u,v,w;}d[4*N];bo

2017-08-11 18:51:51 281

原创 bzoj 2730 HNOI2012 矿场搭建 tarjan

tarjan求割点,每个点双如果不连割点,内部应建两个,连着一个割点,应建一个,连着多个,不用建#include#include#include#include#include#define N 1500using namespace std;int n,m,cnt,num,tot,ans1,cosmos,bo[N];long long ans2;int dfn[N],l

2017-08-10 21:47:57 327

原创 bzoj 2763 [JLOI2011]飞行路线 Dijikstra 分层

k每一个图按原图建边,相邻两图中建边权为0的边补一补dj,好像我以前觉得dj特别难,hhhhh#include#include#include#include#include#include#define N 500500using namespace std;int n,m,k,S,T;struct point{ int st,dis; bool o

2017-08-10 20:13:55 312

原创 Evensgn 剪树枝 树规

f[x][0]表示与其父边相连的连通块内没有黑苹果的方案数,f[x][1]则表示有黑苹果,如果父边被切断,相当于没有黑苹果初始化时,假设切掉父边,f[x][0]=1,f[x][1]=0;递归回时转移,每递归回一个子树,f[x][1]=f[x][1]*f[v][0]+f[x][0]*f[v][1],f[x][0]=f[x][0]*f[v][0];最后处理完每个子树时,若其为黑苹果

2017-08-10 15:54:27 707

原创

3个月联赛不再着急往前去了,看一看自己需要去填的坑0 不会 1 会,不熟||难想2 熟&&好想1.数学:扩展欧几里得,这个前一阵复习了复习,不过好像又记不太清了,其实就是推式子,见题就打吧。(1(线筛、求单个)欧拉函数,线筛素数,欧拉定理,还是比较熟的,考场上也现推过几次,要更熟练(11Lucas,基本忘了,一定要补。(0斐波那契,矩阵乘优化,降到log,(2

2017-08-09 18:01:46 383 1

原创 大暑假集训 第二阶段

8.4T1打了个蠢蠢的莫队,又tm被块长卡了5分,woc,大众分225,老子220T2数学+dp??? Md又没想到dp,直接50分状压怼上T3,明明看过这种题好不好,想什么呢???75分暴力(真的奶死自己了,到现在还没有过...QAQ)今天暴力分给的还是很足的,要不就又爆零了,害怕8.5上午补了补主席树,觉得自己会了...      下午lgl dalao来讲了计算几

2017-08-09 17:03:04 407

原创 bzoj 2428 均分数据 模拟退火

模拟退火按照自己的思路打了,结果WA,发现退火最关键的就是初温,降温,和修改次数,这个题还在外层带了一个循环,骚气#include#include#include#include#include#define inf 0x3f3f3f3f3f3f3f3fllusing namespace std;double av,ans,minn=inf,sum[30];int n,

2017-08-09 16:44:31 354

原创 hdu 2899 Strange fuction 模拟退火

求  F(x) = 6 * x^7+8*x^6+7*x^3+5*x^2-y*x (0 模拟退火,每次根据温度随机下个状态,再根据温度转移#include#include#include#include#include#define inf (double)0x3f3f3f3f3f3f3f3fllusing namespace std;double y;double cal(

2017-08-09 06:38:15 316

原创 bzoj 3680 吊打xxx 模拟退火

第一道模拟退火重心嘛,就是要找到一个点,使其到所有点距离*该点权值和最小思路:初始化一个T,mint,当T大于mint时,每次随机一个解,如果解比当前解优,直接转移,否则,以某概率(与T正相关)转移,并不断降温,最后向四周爬山感觉思路比较清晰,但好多细节不太明白,比如初始化的T,mint,以及退火的速度,前后改了几十遍吧。还是要多做题,找感觉......#include#incl

2017-08-08 21:35:48 386

原创 bzoj 1210 [HNOI2004] 邮递员 插头dp

插头dp板子题??搞了我一晚上,还tm全是抄的标程。。还有高精,哈希混入,还是我比较弱,orz各种dalao有不明白的可以去看原论文。。#include#include#include#include#include#define base (int)1e9#define maxh 2650using namespace std;int n,m;int get(i

2017-08-08 17:38:16 308

原创 与非 乱搞233

题目大意: 初始时你有一个空序列,之后有N个操作。 操作分为一下两种: 1. x:在序列末尾插入一个元素x(x=0或1)。 2.LR:定义nand[L,R]为序列第L个元素到第R个元素的与非和,询问nand[L,L]^nand[L,L+1]^nand[L,L+2]^……^nand[L,R]。 Nand就是先与,再取反 f[n]=nand(1,i); sum[n]=∑ni=1f(i)\su

2017-08-08 17:22:47 278

原创 USACO JAN14 奶牛冰壶运动 凸包+判定

满足条件的一定是在凸包内的,直接判断恬不知耻的加了特判,2333#include#include#include#include#include#define N 50050using namespace std;int n,ss[N],top,topa,topb,ans1,ans2;bool bo=0;struct point{ double x,y;}a[N],b

2017-08-08 07:44:18 522

原创 bzoj 2829 计算几何

将每张卡四个角的圆心跑graham出正常凸包,再加上一个圆就好了。要注意先输入的是x,找点时三角函数瞎换就过了。。#include#include#include#include#include#define N 40050#define PI 3.1415926535898#define exp 1e-8using namespace std;int top,tot,n

2017-08-08 07:41:38 491

原创 R

谁终将声震人间,必长久自身缄默;谁终将点燃闪电,必长久如云漂泊,我的时代还没到来,有的人死后方生。

2017-08-07 19:45:56 393 1

原创 bzoj 1592 dp

就是dp啊f[i][j]表示到第i位,最后一位高度是j的最小花费转移::f[i][j]=minn(f[i-1][k])+abs(a[i]-num[j]);(k#include#include#include#include#include#includeusing namespace std;int f[2005][2005],n,a[2005],b[2005],nu

2017-08-07 06:28:45 422

原创 [Usaco2007 Open]Fliptile 翻格子游戏 状压dp

n,m每一行的状态只与三行有关,所以从第一行开始枚举,每一次让下面一行填上他上面那行的坑最后一行必须要同时满足他自己和他上面那行,否则舍去#include#include#include#include#includeusing namespace std;int n,m,a[18][18],now[18][18],tim[18][18],nxt[18],final[18]

2017-08-07 06:20:22 445

原创 拯救莫莉斯 状压dp

题目大意:每个点有费用,要求选出花费最少的一些点,使得全部点都满足:他被选或与他相邻的任意点被选。没看清数据范围233333和翻格子游戏一样,考虑上中下三行,可行才能转移f[i][j][k]表示到第i行i-1行状态为j,i行状态为k,且i行以前的所有行均满足条件f[i][j][k]------>f[i+1][k][l]  j|k|l|(k>1) 覆盖所有棋子#include#

2017-08-07 06:12:51 479

原创 大暑假集训 第一阶段总结 233

7.25-7.26 ysf 神犇来讲课,杂题选讲什么的。。7.27 集训第一天有点小激动,8点才起,跪了T1:大爆搜,因为种种原因,没打,-1得20;T2:想到了dp,但觉得不对,只打了一个O(n3)的暴力dp,没有想到正解是O(n2),也就没有想到用数据结构优化。下次不管怎样,只要有思路,一定要打。T3:Tarjan+特判,没特判被卡72分,666666T4:猜的矩阵乘,n=

2017-08-06 21:45:20 337

原创 hdu 1693 Eat the Trees 插头dp

每一个点可向上下左右四个方向连边,这就是插头。每一条轮廓线切开的是当前已确定的点的未确定的点,其经过的插头有m个竖着的,一个横着的,懒得画图了。。每一次转移就是将左边的变到下面,上面的变到左边,每一行转移直接左移一位。#include#include#include#includeusing namespace std;int a[13][13],n,m,bit[15];l

2017-08-06 20:30:28 283

原创 bzoj 2653 middle 二分答案 主席树判定

判断中位数是否可行需要将当前的解作为分界,大于其的置为1,小于为-1,然后b-c必选,ab,cd可不选,这个用线段树判定就好但不能每次跑,所以套主席树,按权值排序,构建主席树,更新时将上一个节点改为-1,能保证以上结论#include#include#include#include#include#define N 20005using namespace std;int l

2017-08-05 11:46:20 276

原创 bzoj 3551 kruskal重构树dfs序上的主席树

强制在线kruskal重构树,每两点间的最大边权即为其lca的点权。倍增找,dfs序对应区间搞主席树#include#include#include#include#include#define N 100005#define M 500005using namespace std; int l[2*N],r[2*N],cnt,num_cnt,val[2*N],num

2017-08-05 08:36:12 273

原创 bzoj 2588 树上主席树

主席树上树,对于每个节点,继承其父亲的,最后跑f[x]+f[y]-f[lca]-f[fa[lca]]去重竟然要减一,我竟然不知道??#include#include#include#include#include#define N 100005using namespace std;int e=1,head[N];struct edge{ int u,v,next;

2017-08-03 10:08:13 358 2

原创 bzoj 3166 可持久化Tire

每一个数能做出的贡献就是其两端第二个比他大的中间的数和他的异或值按权值大小排序,按照位置扔进set,set内的元素都是比他大的,也是全的然后Tire上跑就行了。。#include#include#include#include#include#include#define N 50050using namespace std;int sz,ch[33*N][2],sum

2017-08-03 10:02:01 251

原创 bzoj 1901 主席树+树状数组

修改+查询第k小值单纯主席树修改会打乱所有,所以再套一个树状数组维护前缀和使得修改,查询都是log对了,bzoj上不需要读入组数,蜜汁re。。#include#include#include#include#includeusing namespace std;int n,m,sz,T,num_tot,num_cnt,num_l,num_r;int sum[8000005

2017-08-03 09:51:23 256

原创 [Poi2014]FarmCraft 树状dp

对于每个点,处理出走完其子树所需要的时间和其子树完全下载完软件的时间易证,对于每个点的所有子节点,一定优先选择差值大的来给后面的时间树规+贪心。#include#include#include#include#include#include#define N 500005using namespace std;int e=1,head[N],fa[N],n;int a

2017-08-01 21:26:58 288

原创 bzoj 4832 抵制克苏恩 概率期望dp

考试时又翻车了.....一定要及时调整自己的思路!!!随从最多有7个,只有三种,所以把每一种随从多开一维so:f[i][j][k][l]为到第i次攻击前,场上有j个1血,k个2血,l个3血随从的概率最后利用期望的可加性都加起来就好了ps.30滴血受到四五十伤害,完全tm不符合逻辑啊,mdzz!!!#include#include#include#include#in

2017-07-31 15:07:33 387

原创 noip 2015 斗地主 大爆搜!!!

反正肯定是大模拟但是每一个可以出的牌都搜一定不是最优的考虑最特殊的出牌方案:顺子(单,对,三)每一种方案再加上暴力贪心打出剩下的牌的步数#include#include#include#include#include#define N 35using namespace std;int a[N],num[N],n,T,ANS;void read(){ int

2017-07-31 15:01:48 353

原创 bzoj 3759 Hungergame 博弈论+线性基

和nim游戏类似易证必败状态为:当前打开的箱子中石子异或和为0,没打开的箱子中不存在一个子集满足异或和为0因为先手无论是取石子还是开箱子,后手都可以通过取石子来使状态变回原状态所以只需判定是否有子集异或和等于零即可#include#include#include#include#includeusing namespace std;int T,n,a[25];bo

2017-07-30 20:35:46 387

原创 bzoj 1409 Password 矩阵快速幂+欧拉函数

可以发现,该数组的mi就是斐波那契数列所以要矩阵快速幂搞出第n位但是斐波那契数列上涨的很快,这就需要欧拉定理了p^phi(q)%q=1(gcd(p,q)==1)p是素数,所以可以用然后需要5000个数的phi,q筛出sqrt(2^31)范围内的素数,然后直接找单个数的欧拉函数就好了最后再套个快速幂就A了#include#include#include#in

2017-07-30 14:30:20 374

原创 bzoj 1189 紧急疏散 网络流

二分答案,网络流判断将每个门拆点,每个人连向每个门的dis~当前解然后跑最大流,如果等于人数,即为可行解#include#include#include#include#include#include#define pa pair#define N 405#define inf 0x7fffffffusing namespace std;int n,m,p,per=

2017-07-29 21:20:52 587

原创 codeForces 472D 最小生成树

题目大意:给出一个图中点的两两距离,问是否是一棵树,若是,求出平均边权最大的点prim最小生成树,若原图是树,则最小生成树的距离就是原距离。否则不是。搞出来树了,第二问随便dfs就好了。#include#include#include#include#include#define N 2550using namespace std;int T,n,fa[N],pp[N];

2017-07-28 21:43:09 361

原创 bzoj 3195 奇怪的道路 状压dp

看范围,状压没毛病 但是如果随便连的话给开1<<16,乘上n,m就爆了 所以规定转移时只向回连边 于是想状态数组:f[i][j]表示到i这里i前K位的状态为j(表示奇偶) 发现有条数限制,但是n,m,2^K都比较小,加一维, f[i][j][k]表示前i位,用j条路,i前的K位状态为j 转移的话,因为1<=|u - v|<=K, 所以转移时必须要保证转移前一位能连到的最远距离是偶数

2017-07-28 18:02:43 423

原创 Poi2010 Monotonicity 2

树状数组优化dp可以证明最优解一定是通过之前的最优转移过来的,所以每一个点只需要保存以该节点为结尾的最长长度即可对于不同符号,等于号维护数组,大于小于维护树状数组#include#include#include#include#include#define N 500005using namespace std;int n,m,a[N],f[N],ans,c[2][2*N],

2017-07-27 21:07:46 497

原创 noip2011 玛雅游戏 大模拟

深搜+模拟需要剪枝:同一移动向右移了就不需要向左移了#include#include#include#include#includeusing namespace std;int n,bo[6][8],tot,a[6][6][8],b[6][3];bool boo;int print(int x){ printf("\n"); for(int i=0;i<

2017-07-27 21:03:46 527

原创 bzoj 2510 弱题 矩阵乘

看题就像矩阵乘但是1000的数据无从下手打表发现每一行的数都是一样的,只不过是错位的,好像叫什么循环矩阵于是都可以转化为一行的,O(n3)->O(n2)*logk#include#include#include#include#includeusing namespace std;int n,m,k,yy[1005][1005];double ma[1005],A[100

2017-07-27 20:02:11 298

原创 bzoj 1426 收集邮票

f[i]:当前已拥有i种邮票,还需要买的邮票数的期望值。g[i]:当前已拥有i种邮票,还需要的钱的期望值。每张邮票初始都是1元钱,每买一张邮票,还没购买的邮票每张都涨价1元。 f[i]=1+(n-i)/n*f[i+1]+i/n*f[i]--->>f[i]=f[i+1]+n/(n-i)g[i]=1+(n-i)/n*(g[i+1]+f[i+1])+i/n*(g[i]

2017-07-27 12:22:25 287

空空如也

空空如也

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

TA关注的人

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