自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

XSamsara的博客 AFO

XCW的博客

  • 博客(302)
  • 资源 (2)
  • 收藏
  • 关注

原创 LibreOJ 2955. 「NOIP2018」保卫王国【动态DP】

LibreOJ 2955. 「NOIP2018」保卫王国果然是一道裸题,动态DP,必须选就设权值为0,不选设权值为∞\infty∞就可以了。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;const int MA...

2019-10-24 14:22:54 291

原创 【Codeforces】1221D. Make The Fence Great Again【DP】

我们会发现一个规律,每个栅栏的高度最多增加2,所以直接上DP。#include<cstdio>#include<cstring>#include<algorithm>const int MAXN=3e5+5;int T,n,a[MAXN],b[MAXN];long long F[MAXN][3];#include<cctype>int ...

2019-09-26 19:51:55 288

原创 BZOJ2753: [SCOI2012]滑雪与时间胶囊【最小生成树】

2753: [SCOI2012]滑雪与时间胶囊转化模型,就是最小树形图,有向图最小生成树。看数据范围,好像不能用朱刘算法。我们发现这是一个DAG,那么我们可以先按照高度排序,然后按照权值排序,这样就能保证是一棵树了。#include<queue>#include<cstdio>#include<algorithm>using namespace s...

2019-09-14 16:00:40 225

原创 BZOJ2395: [Balkan 2011]Timeismoney【最小乘积生成树】

2395: [Balkan 2011]Timeismoney这篇博客写的不错https://www.cnblogs.com/autsky-jadek/p/3959446.html每次求出距离最远的点然后分治就可以了。#include<cstdio>#include<algorithm>const int MAXN=205,MAXE=10005;int n,m,f...

2019-09-13 19:43:46 186

原创 BZOJ4398: 福慧双修【二进制分组+最短路】

4398: 福慧双修考虑笨蛋,我们可以枚举出边,然后Dij就可以了。显然在菊花图的情况下要T我们考虑分组,对于连1的边,一半强制为出边,一半强制为入边,跑DIJ,然后交换,再做一遍。然后继续分治下去,这样会发现我们所以状态都能做到,复杂度为O(nlog2n)O(n log^2n)O(nlog2n)#include<cstdio>#include<cstring>...

2019-09-09 21:32:01 247

原创 BZOJ2961: 共点圆【二进制分组|CDQ+凸包+三分】

2961: 共点圆根据圆方程(x−x0)2+(y−y0)2≤(x02+y02)2(x-x_0)^2+(y-y_0)^2 \le (x_0^2+y_0^2)^2(x−x0​)2+(y−y0​)2≤(x02​+y02​)2解得x02+y02≤2xx0+2yy0x_0^2+y_0^2\le 2xx_0+2yy_0x02​+y02​≤2xx0​+2yy0​右边项可以看成(2x,x0)⋅(2y,y0)...

2019-09-09 19:55:32 153

原创 BZOJ4140: 共点圆加强版【二进制分组+凸包+三分】

4140: 共点圆加强版根据圆方程(x−x0)2+(y−y0)2≤(x02+y02)2(x-x_0)^2+(y-y_0)^2 \le (x_0^2+y_0^2)^2(x−x0​)2+(y−y0​)2≤(x02​+y02​)2解得x02+y02≤2xx0+2yy0x_0^2+y_0^2\le 2xx_0+2yy_0x02​+y02​≤2xx0​+2yy0​右边项可以看成(2x,x0)⋅(2y,...

2019-08-31 22:03:44 156

原创 BZOJ2428: [HAOI2006]均分数据【模拟退火】

2428: [HAOI2006]均分数据模拟退火就可以了。选择aia_iai​应该放在的位置,然后退火判断一下。#include<ctime>#include<cmath>#include<cstdio>#include<cstdlib>#include<algorithm>const double _T=0.1,EXP_...

2019-08-29 20:38:30 144

原创 BZOJ2527: [Poi2011]Meteors【整体二分+树状数组】

2527: [Poi2011]Meteors好坑的一题,二分答案,check成功的国家放左边,否则放右边,然后继续分治下去,树状数组维护就可以了。然后就炸longlong了,中间记得check成功就退出。#include<cstdio>#include<vector>using namespace std;const int MAXN=3e5+5;int n,...

2019-08-29 12:18:37 148

原创 BZOJ1249: SGU277 HERO 动态凸包【凸包+set】

1249: SGU277 HERO 动态凸包我们只需要用一个set维护顺序。#include<set>#include<ctime>#include<cmath>#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;ty...

2019-08-28 16:16:15 222

原创 BZOJ2739: 最远点【凸包+决策单调性】

2739: 最远点拆环成链,因为题目给出的是凸包,所以有决策单调性,然后分治就可以了。#include<cmath>#include<cstdio>const int MAXN=500005;typedef long long LL;int T,n,Ans[MAXN];struct point{long long x,y;}p[MAXN];#include&...

2019-08-27 18:38:52 236

原创 BZOJ2829: 信用卡凸包【凸包】

2829: 信用卡凸包我们不需要考虑圆弧,最后加上一个圆的周长就可以了。然后维护凸包就可以了。以下是维护了上下凸壳求解的。#include<cmath>#include<cstdio>#include<algorithm>const int MAXN=10005;const double pi=acos(-1.0);int n,m,Topsa,...

2019-08-27 12:11:46 149

原创 BZOJ4372: 烁烁的游戏【动态点分治+线段树】

4372: 烁烁的游戏动态点分治,其实就是将点分树建出来,然后在树上做一些动态操作(不改变树的形态)。对于每一个点,我们用线段树存下这个点的子树中所有原树上距离的权值。然后对于修改直接暴力跳父亲,容斥去重就可以了。询问也同样道理。复杂度O(nlog2n)O(nlog^2n)O(nlog2n)#include<cmath>#include<cstdio>#incl...

2019-08-26 19:27:45 166

原创 BZOJ3611: [Heoi2014]大工程【虚树+树形DP】

3611: [Heoi2014]大工程首先我们肯定会想到DP求这个答案,但是发现点数实在太多,然后建虚树就可以了。#include<cmath>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int MAXN=1e6+5;typ...

2019-08-25 16:59:06 167

原创 BZOJ3809: Gty的二逼妹子序列【分块】

3809: Gty的二逼妹子序列很容易想到,莫队,然后用树状数组维护,发现复杂度是O(nnlogn)O(n \sqrt{n} logn)O(nn​logn)的。我们考虑如何平衡复杂度用分块代替树状数组,这样询问复杂度O(n)O(\sqrt{n})O(n​),修改复杂度O(1)O(1)O(1),总复杂度O(qn)O(q\sqrt{n})O(qn​)#include<cmath>...

2019-08-24 21:05:04 113

原创 【Codeforces】848C. Goodbye Souvenir【CDQ】

【Codeforces】848C. Goodbye Souvenir将头尾之差看成各位差。设pre[x]pre[x]pre[x]为与xxx同色的上一个位置。那么答案就是∑i=lr[l≤pre[i]]∗(i−pre[i])\sum_{i=l}^{r} [l \le pre[i]]*(i-pre[i])∑i=lr​[l≤pre[i]]∗(i−pre[i])也就是∑i=1r[l≤pre[i]]∗...

2019-08-24 18:44:56 514

原创 BZOJ2125: 最短路【圆方树+仙人掌】

2125: 最短路仙人掌上求最短路。将仙人掌转化为圆方树,圆点与方点连的边长为圆点到方点父节点的最短路,Tarjan可以求出。考虑前缀和+LCA,如果LCA为圆点,直接算就可以了。如果为方点,分类讨论是否经过返祖边,就可以了。#include<cmath>#include<cstdio>#include<vector>using namespac...

2019-08-16 20:26:13 178

原创 BZOJ1023: [SHOI2008]cactus仙人掌图【仙人掌+Tarjan+DP】

1023: [SHOI2008]cactus仙人掌图先考虑树上,那么就是一个DP就可以了考虑环上,我们如果两个点之间距离大于环长一半,那么我们就不可以走这条路径,所以可以先剖环成链,然后单调队列就可以了。#include<vector>#include<cstdio>#include<algorithm>using namespace std;co...

2019-08-16 08:19:00 144

原创 LibreOJ2305. 「NOI2017」游戏【2-SAT】

2305. 「NOI2017」游戏先不考虑x的地图。这样一看,好像需要3-SAT,其实不需要,我们将每幅图拆成两个点就可以了。但是x就有点恶心了,还好个数不多,所以直接DFS就可以了。数组开小了导致T飞QAQ#include<queue>#include<cstdio>#include<cstring>#include<algorithm&...

2019-08-15 21:32:46 183

原创 BZOJ4316: 小C的独立集【Tarjan+DP+仙人掌】

4316: 小C的独立集如果这是一棵树,那么很好做,设F[i][0/1]F[i][0/1]F[i][0/1]就可以了。我们考虑每一个环,环的最末端会对最前端有影响。最末端是0,无所谓,最末端为1,那么最顶端只能是0。那我们先处理环外的点,然后考虑一个环,强制最末端为0/1。为1就强制为−∞- \infty−∞ ,分别DP就可以了。#include<cstdio>#incl...

2019-08-15 18:09:32 207

原创 BZOJ4553: [Tjoi2016&Heoi2016]序列【CDQ+DP】

4553: [Tjoi2016&Heoi2016]序列我们可以得出递推式dp[i]=dp[j]+1,j&lt;i,a[j]&lt;=L[i],R[j]&lt;=a[i]dp[i]=dp[j]+1,j&lt;i,a[j]&lt;=L[i],R[j]&lt;=a[i]dp[i]=dp[j]+1,j<i,a[j]<=L[i],R[j]...

2019-07-27 11:27:16 101

原创 BZOJ2154: Crash的数字表格【莫比乌斯反演】

2154: Crash的数字表格∑i=1n∑j=1mlcm(i,j)\sum_{i=1}^{n}\sum_{j=1}^{m} lcm(i,j)∑i=1n​∑j=1m​lcm(i,j)∑i=1n∑j=1mi∗j(i,j)\sum_{i=1}^{n}\sum_{j=1}^{m} \frac{i*j}{(i,j)}∑i=1n​∑j=1m​(i,j)i∗j​设d=(i,j)F(x,y)=∑i∈[1...

2019-07-26 11:17:39 130

原创 Project Euler 512 Sums of totients of powers【欧拉函数】

Sums of totients of powersf(n)=(∑i=1nϕ(ni))mod(n+1)f(n)=(\sum_{i=1}^{n} \phi(n^i)) mod(n+1)f(n)=(∑i=1n​ϕ(ni))mod(n+1)g(n)=∑i=1nf(i)g(n)=\sum_{i=1}^{n} f(i)g(n)=∑i=1n​f(i)因为ϕ(ni)=ϕ(n)∗ni−1\phi(n^i)=...

2019-07-22 10:19:01 138

原创 BZOJ1101: [POI2007]Zap【数论分块+莫比乌斯函数】

1101: [POI2007]Zap原式为∑i=1A∑j=1B[(i,j)==D]\sum_{i=1}^{A} \sum_{j=1}^{B} [(i,j)==D]∑i=1A​∑j=1B​[(i,j)==D]基本操作,除掉D∑i=1AD∑j=1BD[(i,j)==1]\sum_{i=1}^{\frac{A}{D}} \sum_{j=1}^{\frac{B}{D}} [(i,j)==1]∑i=1...

2019-07-21 13:01:46 123

原创 【Codeforces】1041F. Ray in the tube

F. Ray in the tube【题目大意】一束光从A开始沿B方向射出,经过镜面反射,能经过的点的数量。【题解】首先间距没有用。我们只要知道反射长度就可以了。我们发现一束光经过奇数次反射会反射到另一面镜子,也可以经过一次反射,所以我们之间除掉所有奇数因子,所以最后反射长度为2x2^x2x就可以包含所有答案。只需要枚举xxx ,然后计算就可以了。ps:有一个天大的坑,只有两个对称...

2019-07-15 19:17:30 150

原创 BZOJ1652: [Usaco2006 Feb]Treats for the Cows

1652: [Usaco2006 Feb]Treats for the Cows水题不说#include<cstdio>#include<algorithm>using namespace std;int n,Ans,a[2005],F[2005][2005];int main(){ scanf("%d",&n); for(int i=1;i<...

2019-05-22 21:02:18 118

原创 BZOJ5397: circular【倍增】

5397: circular去掉覆盖的点,求出最优的下一个线段(a[j].L>=a[i].R,min(a[j].R)),直接二分,check用倍增。#include<cmath>#include<cstdio>#include<algorithm>using namespace std;const int MAXN=100005;int m,...

2019-04-22 20:15:53 266 4

原创 BZOJ4444: [Scoi2015]国旗计划【倍增】

4444: [Scoi2015]国旗计划我们知道最后答案肯定是∈\in∈[任意答案Ans-1,Ans,Ans+1]。我们先可以求出Fa[i]表示一次最远能跳到的编号。然后直接倍增就可以了。#include<cstdio>#include<algorithm>using namespace std;const int MAXN=200005;int n,L,T...

2019-04-22 08:32:54 186

原创 BZOJ1190: [HNOI2007]梦幻岛宝珠【01背包】

1190: [HNOI2007]梦幻岛宝珠我们对b分层,对于每一层用a背包,然后考虑如何在层之间转移。F[i]表示还剩余i空间的最优解,略有不同,然后就直接从上一层j转移到j*2+(W这一位是否为1)。#include<cstdio>#include<cstring> #include<algorithm>using namespace std;i...

2019-04-21 21:02:31 240

原创 BZOJ3155: Preprefix sum【线段树】

3155: Preprefix sumemmm,没什么好说的,线段树区间加。#include<cstdio>using namespace std;const int MAXN=100005;int n,m,a[MAXN];long long Tre[MAXN<<2],Add[MAXN<<2];#include<cctype>int r...

2019-04-21 19:00:16 128

原创 BZOJ3229: [Sdoi2008]石子合并【GarsiaWachs】

3229: [Sdoi2008]石子合并GarsiaWachs算法。a[i-1]<=a[i+1]时,合并a[i-1]和a[i]将合并后的数插入大于他的数的后面。#include<cstdio>#include<algorithm>using namespace std;const int MAXN=40005;int n,m,Ans,a[MAXN];...

2019-04-21 16:17:07 192

原创 BZOJ4498: 魔法的碰撞【DP】

4498: 魔法的碰撞我们先考虑全部紧凑的情况,也就是没有多余的空格的情况(将DiD_iDi​–,先不考虑魔法师占的空间)。这里用了一个很巧妙的方法,多加一维,表示预留的空位。加入A会有三种情况(E表示空位):A,AE或EA,EAE。对于第一种,表示A两边都有魔法师。对于第二种,表示A的一边有,一边没有。对于第三种,表示A的两边都是空的。如果我们按照从大到小的顺序来,就会发现只需要考...

2019-04-19 21:01:24 155

原创 BZOJ2987: Earthquake【类欧几里得】

2987: Earthquake将式子移项得到y≤−Ax+CBy\le \frac{-Ax+C}{B}y≤B−Ax+C​答案就是∑x=0n[−Ax+CB+1]\sum_{x=0}^{n} [\frac{-Ax+C}{B}+1]∑x=0n​[B−Ax+C​+1]设f(n,A,B,C)=∑x=0n[−Ax+CB+1]f(n,A,B,C)=\sum_{x=0}^{n} [\frac{-Ax+C}{...

2019-04-19 18:16:25 140

原创 BZOJ4817: [Sdoi2017]树点涂色【LCT+线段树+LCA】

4817: [Sdoi2017]树点涂色我们发现1操作就是LCT的Access操作,对于每个1操作,在Access的同时构造Val数组,我们会发现当前实儿子所在的子树Val++,Access后的实儿子Val–。所以可以用DFS序+线段树进行维护。2操作就是Val[x]+Val[y]-2*Val[fa]+13操作直接维护区间最大值就可以了。#include<cmath>#inc...

2019-04-17 20:24:00 208

原创 BZOJ5391: [Lydsy1806月赛]最长公共子序列

5391: [Lydsy1806月赛]最长公共子序列直接找字符出现最少的组成T就可以了。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,Ans,hsh[30];bool t;char ch[1000005];int main(){ scan...

2019-04-08 19:19:26 149

原创 BZOJ5385: [Lydsy1806月赛]字符串大师II【找规律】

5385: [Lydsy1806月赛]字符串大师II首先找一下规律就可以得出结论。#include<cstdio>using namespace std;int T;int main(){ scanf("%d",&T); for(int i=1;i<=T;i++){ int k;long long n;scanf("%d%lld",&k,&amp...

2019-04-02 11:13:18 188

原创 BZOJ5387: [Lydsy1806月赛]质数拆分【乱搞】

5387: [Lydsy1806月赛]质数拆分一开始想写个笨蛋,先枚举a+b,然后方案数相乘,结果就过了。。。#include<cstdio>using namespace std;const int MAXN=150000;int n,f[MAXN+5],p[MAXN+5];long long Ans;bool vis[MAXN+5];bool make_p(){ vi...

2019-04-01 21:09:42 136

原创 BZOJ5390: [Lydsy1806月赛]糖果商店【背包】

5390: [Lydsy1806月赛]糖果商店F[i][j]F[i][j]F[i][j]表示体积为iii,最顶上的糖果的种类为jjj。F[i][0]F[i][0]F[i][0]表示体积为iii,最顶上的糖果盒盖上了。所有可以得到转移F[i][j]=max(F[i−wj][j]+vj)F[i][j]=max(F[i-w_j][j]+v_j)F[i][j]=max(F[i−wj​][j]+vj​...

2019-04-01 20:45:10 129

原创 ZJOI2019游记——一场颓废之旅

ZJOI2019游记Day0又是颁奖大会,但是,显然身为蒟蒻的我只能在台下看看,浪费了半个小时QAQ。镇海中学给人的感觉不是很大,可能是建筑多吧。但是,说实话,饭菜是这几次比赛中次好吃的(还是衢州二中食堂好吃)。Day1上午镇海的双省队dalaoLYX将课,emmm《具体数学》,一点不想说话。下午kcz的杂题选讲,还是头昏眼花。不过感觉比上午好。然后就是试机,虽然镇海电脑显示器很**...

2019-03-27 19:19:27 681

原创 BZOJ1296: [SCOI2009]粉刷匠【DP】

1296: [SCOI2009]粉刷匠这道SB题因为我题目看错,变成了一道毒瘤题,然后到现在才做。对于每一行DP,然后对于所有列DP就可以了。#include<cstdio>#include<algorithm>using namespace std;int n,m,T,g[55][2505],f[55][55][2505],Sum[2][55][55];ch...

2019-03-23 11:30:54 126

COCI​ ​2017/2018 Round​ ​#1, ​ ​October ​ ​14th, ​ ​2017 翻译试卷 标程及题解

COCI​ ​2017/2018 Round​ ​#1, ​ ​October ​ ​14th, ​ ​2017 翻译试卷 标程及题解

2018-01-14

COCI​ ​2017/2018 Round​ ​#1, ​ ​October ​ ​14th, ​ ​2017 翻译试卷

COCI​ ​2017/2018 Round​ ​#1, ​ ​October ​ ​14th, ​ ​2017 翻译试卷

2017-12-28

空空如也

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

TA关注的人

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