自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xumingyang0的博客

命运从未抛弃每一个努力向上的灵魂,坚持过,努力过,最终会等来好消息

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

原创 二分图匹配

HDU 4185 Oil Skimmingpoj1469(hopcroft-karp算法)HDU 1507 Uncle Tom’s Inherited Land*ZOJ1654-Place the RobotsHDU 4751 Divide Groups HDU 4685 Prince and PrincessHDU 4185 Oil Skimming//ht...

2018-07-30 15:24:39 157

原创 2-SAT

学习博客 位运算转换为2-sat的方法: x表示x这个点是0,x’表示x这个点是1 如果a and b==0 连接a’->b b’->a 如果a and b==1 连接a->a’ b->b’ 如果a or b==0 连接a’->a b’->b 如果a or b==1 连接a-&

2018-07-30 15:10:36 186

原创 高精度模板

洛谷P1932 A+B A-B A*B A/B A%B Problem#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=20002,M=1e9;char s[10002];int i,cnt,f1,f2;struct NUM{ bool fl;int t; ...

2018-07-29 21:26:11 357 1

原创 bzoj2257: [Jsoi2009]瓶子和燃料

题目Solution根据裴蜀定理可得:容量为v1,v2,.....vkv1,v2,.....vkv1,v2,.....vk的kkk个瓶子所能倒出的最小值为gcd(v1,v2,...,vk)gcd(v1,v2,...,vk)gcd(v1,v2,...,vk) 其实这结论我是猜出来的,但是确实可以从充分性和必要性方面分别证明 然后问题等价为:nnn个数里选kkk个,使它们的gcdgcd...

2018-07-25 11:28:33 205

原创 bzoj1303: [CQOI2009]中位数图

题目Solution因为我们只关心相对大小,所以数字可以转为1,-1,0。要求覆盖b位置的总和为0的连续子序列数量Code#include<bits/stdc++.h>using namespace std;typedef long long ll;int n,a,b,i,s,ri,sum[2][200001];ll ans;inline char...

2018-07-25 08:29:33 112

原创 bzoj1018: [SHOI2008]堵塞的交通traffic

题目 题解Solution 一道用线段树维护连通性的题。 第一做这种题,其实这类问题我们需要维护一下区间内的联通关系,再用我们维护的这些关系去查询。 对于这道题,我觉得可以有两种建树的方法: ①:以每一列为一个叶子节点。 ②:以每一个区间(就是每1条横向道路连接的左右两个节点)为一个叶子节点。 我选择的是第一种,我们首先需要维护6个变量(也就是区间内的6...

2018-07-23 13:41:27 212

原创 容斥原理

HDU 1695 GCDHDU 2204 Eddy’s爱好HDU 4407UVA11806 CheerleadersHDU 2841HDU 4135 POJ2773TopCoder - 10875 CarelessSecretaryTopCoder - 8470 CharmingTicketsEasy TopCoder - 8307 SetOfPatternsTopCode...

2018-07-19 23:18:11 439

原创 计算几何2

凸包: https://blog.csdn.net/bone_ace/article/details/46239187 旋转卡壳算法: https://blog.csdn.net/wang_heng199/article/details/74477738 http://www.cnblogs.com/xdruid/archive/2012/07/01/2572303.html 半平面交:...

2018-07-19 23:03:08 196

原创 计算几何1

模板typedef double D;const D eps=1e-6,inf=1e99;struct P{ D x,y; P(){}; P(D xx,D yy){x=xx;y=yy;} friend P operator+(P p1,P p2){return P(p1.x+p2.x,p1.y+p2.y);} friend P operator-...

2018-07-19 22:58:15 183

转载 bzoj4762: 最小集合

题解1 题解2 其实差不多,随便选一篇看好了

2018-07-19 15:52:37 287

原创 bzoj2525: [Poi2011]Dynamite

题目 思路出处 感觉这题就是消防局的设立+n开大300倍+距离为任意数+二分答案 显然,这题就是二分答案后,把当前最深的点向上ans单位,然后覆盖这个点,并把ans距离内的全覆盖一遍,但这样很难写,要稍微换一下写法 设b[i]表示i点是否被覆盖, 当b[i]==0时,f[x]表示以x为根的子树中目前还没有人管理的关键点距离x的最远的距离 否则,f[x]表示以x为根的子树中选择了的点距离...

2018-07-15 10:07:36 177

转载 bzoj4033: [HAOI2015]树上染色

题目 题解Solution树形DP。 首先不难想到设fi,jfi,jf_{i,j}为以编号为i的节点为根的子树中有j个黑色节点对答案的贡献。 这里发现不好转移,所以把该子树内的点与子树外的点组合所产生的权值也计算进去。考虑统计所有边权对答案的贡献,一条边对答案产生的贡献为边权∗(子树内黑色点数量∗子树外黑色点数量+子树内白色点数量∗子树外白色点数量)。 用dfsdfsdf...

2018-07-13 15:46:52 133

原创 51nod 1677 treecnt

题目 题解 对任意边(u,v) 设a=以v为根的子树的点 b=n-a 那这条边被选择的次数=C(a,1)*C(b,k-1)+C(a,2)*C(b,k-2)+C(a,3)*C(b,k-3)+….. 显然 这样肯定会TLE 不妨换个角度 考虑从n个点中选择k个点 一共有C(n,k)总情况 当k个点全在a中选出来 或 k个点全在b中选出来的情况是要排除...

2018-07-13 14:31:41 138

转载 51nod 1299 监狱逃离

题目 题解 按我的理解对题解改了一些Description给出一个n+1个点n条边的树,其中每一个度数为1的点为出口。 现在有一些点有逃犯,你需要在一些没有逃犯的点放置警卫,有警卫的点逃犯无法经过。 求若使所有逃犯均无法到达出口,最少需要多少个警卫。 n<=10^5Solution为什么我一眼想到最小割=w= 就是所有的逃犯无法到达一些点,那么我们把每个点拆点...

2018-07-13 10:52:15 169

转载 卡常技巧

本方法可以让c语言指令进一步接近汇编指令的执行效率,提高单片机,嵌入式系统的速度和稳定性,但编程时应采取函数化的编程法——例如使用swap()函数时,必要时加注释。注:本例涉及一些计算机原理的思想,较为抽象,读者可利用1和2(01和10)等简单的数字进行验证,并上机实验,以加深印象。0.位运算心法:(掌握粗体字)&(与逻辑):有0出0,全1出1;|(或...

2018-07-13 09:51:41 5048 2

原创 CodeChef - COUNTREL Count Relations

题目 题意:xxx和yyy为两个只包含1...N1...N1...N中数的集合,要求:在xxx和yyy不为另一个的子集的情况下,分别求: 1.x∩y=∅1.x∩y=∅1.x∩y=∅ 2.x∩y≠∅2.x∩y≠∅2.x∩y≠∅ 的个数,(x,y)(x,y)(x,y)与(y,x)(y,x)(y,x)算一组,所以方案数要除以222 这可能是我唯一想出过的组合计数的问题吧 中间要用多次二项式定...

2018-07-12 23:17:38 249

原创 洛谷P1983 车站分级

这题有三种做法1.O(nm2)1.O(nm2)1.O(nm^2)488ms / 9.61MB / 0.68KB 不用讲,直接贴代码#include<bits/stdc++.h>using namespace std;const int N=1002;int n,m,i,j,a[N],d[N],ans,f[N],k,vi[N][N],c[N][N],l;...

2018-07-12 20:21:02 3137 5

原创 51nod 1705 七星剑

题目 题解 用f[i]f[i]f[i]表示iii颗星的最小期望 从第#i-1个点转移到i,若成功概率为个点转移到i,若成功概率为个点转移到i,若成功概率为p,失败后退,失败后退,失败后退l格,那么格,那么格,那么 p\cdot f[i]+(1-p)\cdot f[i-i-l]=f[i-1]+c[j]$#include<bits/stdc++.h>using namesp...

2018-07-12 15:01:09 155

转载 bzoj 1064: [Noi2008]假面舞会

题目 题解 可以把整个图分为环和链来考虑。 对于链的情况,kkk的最小值就是链的长度,最大值就是所有的链接起来。 对于环的情况,kkk的最大值就是环的大小,环大小的约数k也可以取。 现在问题就变成了怎样求环。如果是无向图的话,直接随便找个点dfsdfsdfs就行了。但是现在是有向图,所以需要变成无向图。将原图中的每一条边加上一个111的权值,然后再新建一条权值是−1−1−1的反向边就行了...

2018-07-12 14:32:24 149

转载 51nod1443 路径和树

题目 题解#include<bits/stdc++.h>using namespace std;const int N=300002;typedef long long ll;struct node{ int to,ne,w;}e[N<<1];int n,m,i,x,y,s,u,vis[N],tot,h[N],v,z,pre[N];queue...

2018-07-12 13:19:16 179

转载 51nod1815 调查任务

题目 题解 使模最大就是找某条路径上的严格次大值,由于一个点可以通过多次,那门可以tarjan缩点,处理出每个联通快的最大值与次小值,剩下就是在DAG图上bfs计算答案。(注意次小值需在最大值路径上)#include<bits/stdc++.h>using namespace std;const int M=4000002,N=400002;queue<in...

2018-07-12 12:52:17 345

转载 topcoder使用

博客 呃,其实我是个菜如一只鸡的家伙了,想了那么久说要去打Topcoder 的srm,从配置好到实际打,中间间隔估计超过1个月.当然第一次srm人品比较好,250和500水过,950的没想法也就认了,实力就没到那里,然后Challenge阶段hack 2/2,然后莫名的就给...

2018-07-10 22:29:51 8574 3

转载 bzoj1009: [HNOI2008]GT考试

题目 题解 设dp[i][j]dp[i][j]dp[i][j]为第i个号码匹配到第j个不吉利数字的方案数。 显然前i个号码的后缀构成了前j个不吉利数字,而dp[i][j]dp[i][j]dp[i][j]向i+1i+1i+1转移相当于在后缀后面新加一个字符,可以联想到AC自动机,然而这个只有一个串所以kmp就足够了。 设a[k][j]a[k][j]a[k][j]为k位后面加一个字母转移到j的...

2018-07-10 21:29:15 147

原创 51nod1048 整数分解为2的幂 V2

题目 题解 程序可以看我的,我的A了,当然,有些地方还可以优化,但我懒得优化了#include<bits/stdc++.h>using namespace std;typedef long long ll;const int M=1e9;char s[31];int tmp,i,j,k,tot;struct NUM{ int t;ll a[201];}f[...

2018-07-10 07:58:33 237

原创 错误整理

各种错误整理+其他注意 一、long long(int 64) @10.26 Inside Contest 有些题目虽然读入都是int(longint),但加起来答案会超过int(longint) 很多要求输出方案数的题目没有mod的话很容易超int(longint),有mod要注意中间程是否会超int(longint)。 有时答案甚至会爆long long(int64),...

2018-07-09 21:51:34 283 2

原创 51nod 1380 夹克老爷的逢三抽一

题目 题解 设最大值为b,左边为a,右边为c 解释一下为什么要把a+c-b放回去 因为b不一定是最优的,说不定a、c和b差不多大,同时选a、c可能比b更优,把a+c-b放回去,若再次取出,则相当于用两次选了a和c,满足题意,也满足贪心#include<bits/stdc++.h>using namespace std;typedef long long ll;...

2018-07-09 15:00:23 191

转载 51nod 1780 完美序列

题目 题解 先预处理出来每种大小的数的个数,并在这个过程进行判断是否连续(不大于 1),然后,我们可以从小到大进行插空法插数,那么如何插呢?假如,此时我们已经查到数 i,那么合法的插孔分为两种,第一种是插在两个i−1i−1 i−1 之间,另一种就是当首尾有i−1i−1 i−1 时,我们可以在首尾两侧进行插空。那么我们需要考虑的也就是此时考虑到了第iii 种数、有多少个相邻的第ii i 种数对儿...

2018-07-09 14:13:55 237

转载 51nod 1257 背包问题 V3

题目 题解 01分数规划0-1 分数规划 t1 * x1 + t2 * x2 + ... + tn * xn r = --------------------------------- c1 * x1 + c2 * x2 + ... + cn * xn给定t[1..n], c[1..n], 求x[1..n]使得sigma(xi)=k且r最大(小). 为了让r最...

2018-07-09 11:19:02 111

转载 bzoj2298: [HAOI2011]problem a

题目 题解 求最多说真话的人数,答案即为n-ans 设dp[i]表示在前i名中最多有多少人说真话 dp[i] = max{dp[j-1]+sum[j][i]} 其中sum[j][i]表示名次区间为[j, i]的人数#include<bits/stdc++.h>using namespace std;#define mp make_pairconst int N=1...

2018-07-09 10:47:37 180

原创 cf767B. The Queue

题目 题解 细节特别多,写完以后wa了三四发以后实在想不出哪里漏想了,就看数据,又wa了好几发,实在不行,就看了题解 程序其实很短#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=100002;int i,n;ll x,s,ans,t,e,mx,mn;inline...

2018-07-08 10:31:13 169

原创 bzoj3619: [Zjoi2014]璀灿光华

题目 题解题解:首先确定一个原点(度数为3),然后从点BFS,计算到每个点经过的点的个数,我们发现,度数为3而且与原点有2n−1个点的点,是和原点在同一个平面而且是原点对角线上的另一个点 这样的点一共有3个,每一个和原点都能确定所有点的一个维度,只要对它进行BFS,然后若一个点到原点是S[i]S[i]S[i],到关键点是T[i]T[i]T[i],那么该维度就是(S[i]+T[i]−...

2018-07-07 23:02:55 237

原创 bzoj1686: [Usaco2005 Open]Waves 波纹

模拟题 题解顺便赞一下背景图片//s表示水波是上凸的还是下凹的//f表示水波移动方向是左还是右#include<bits/stdc++.h>using namespace std;int i,j,m1,m2,n,r,t,x,y,ti,xx,yy,f,s,mp[9][9];void ssp(){//水波在m1与m2之间来回盘旋的情况 if (f){ ...

2018-07-07 20:45:07 227

原创 高斯消元

POJ 1222 EXTENDED LIGHTS OUTPOJ 1681 Painter’s ProblemPOJ 1753 Flip GamePOJ 1830 开关问题POJ 3185 The Water BowlsPOJ 2947 Widget FactoryPOJ 1166 The ClocksHDU 3949 XOR(线性基模板)POJ 1222 EXTE...

2018-07-06 22:09:16 155

原创 洛谷P1082 同余方程

还记得我初一的时候还没听说过exgcd,看到这道题,咦,这不就是不定方程吗, 于是推了一个小时,推出一个类似exgcd的东西,本质一样 以下///表示取整的除(div) ax−by=cax−by=cax-by=c x=by+ca=(b%a)y+ca+b/a⋅yx=by+ca=(b%a)y+ca+b/a⋅yx=\frac{by+c}{a}=\frac{(b\%a)y+c}{a}+b/a\cd...

2018-07-06 22:01:36 280

原创 gcd&exgcd&crt&excrt

var a,b:int64;function gcd(a,b,c:int64):int64;beginif (a=0)or(b=0) then exit(1);exit((gcd(b mod a,a,-c)*b+c) div a);end;beginreadln(a,b);writeln((gcd(a,b,1)) mod b);end.

2018-07-06 21:39:18 311

原创 绍兴一中模拟赛7.6

T1:人类杀题目描述  因为吃完晚饭之后只有半个小时不够打狼人杀,某个天才设计了一个新游戏叫做人类杀。   有若干个狼人和一个人类,在晚上每个狼人依次醒来指票一个人,第二天白天吃票最多的人死亡。假如存在平票情况则无人死亡。狼人的游戏目标是找出那个人类然后杀掉。白天每个人都发一次言之后进入天黑。   小A正在旁观这个游戏,在一天白天每个人都发了言解释了夜晚时自己的票给了谁,假设所有狼人都说...

2018-07-06 19:42:16 266

转载 线性基

[转自Marser](https://www.luogu.org/blog/Marser/solution-p3812)首先,线性基是用于查询多个数中选取一些数的Xor最大值,最小值,以及能否得到某个值的数据结构,可以在log的时间内解决问题。它实际上是一个大小为log的数组,对于每一位记录一个最高位为它的某个数,要求这个数组可以表示所有这些数的子集的Xor值,初始全部为零。插入和判断插入...

2018-07-05 16:43:21 370

原创 bzoj1054: [HAOI2008]移动玩具

题目题解:题目很简单,二进制压缩成16位,然后bfs就好,但是有两个坑点,需要注意一下。 1.bfs时搜索i-1,i+1时,目的是搜索左边那列和右边那列,但是当i%4==0或i%4==3时会到上一行或者下一行 2.对于一些做法,目标状态与起始状态相等时会有错误标程:#include<bits/stdc++.h>using namespace std;in...

2018-07-05 12:47:59 211

转载 后缀数组

题目 题解#include<bits/stdc++.h>using namespace std;const int N=1000002;int rak[N],tp[N],sa[N],n,i,M,tax[N];char s[N];void Qsort(){ memset(tax,0,(M+1)<<2); for (int i=1;i<=n...

2018-07-02 13:34:35 160

空空如也

空空如也

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

TA关注的人

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