- 博客(1405)
- 资源 (64)
- 收藏
- 关注
原创 Dinic模版+SAP模版
我的板qwq 好像常数要大一些..bool bfs(){ int u,v; memset(h,-1,sizeof(h)); queue<int> q; h[1]=0; q.push(1); while(!q.empty()){ u = q.front();q.pop(); for(int i=head[u];~i;i=
2016-11-02 15:08:51 376
原创 【BZOJ 1001】狼抓兔子 【Dinic最小割】
Description 现在小朋友们最喜欢的”喜羊羊与灰太狼”,话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形:左上角点为(1,1),右下角点为(N,M)(上图中N=4,M=5).有以下三种类型的道路 1:(x,y)<==>(x+1,y) 2:(x,y)<==>(x,y+1) 3:(x,y)<==>(x
2016-11-02 15:02:56 830
原创 【BZOJ 1003】[ZJOI2006]物流运输 【SPFA+DP】
Description 物流公司要把一批货物从码头A运到码头B。由于货物量比较大,需要n天才能运完。货物运输过程中一般要转 停好几个码头。物流公司通常会设计一条固定的运输路线,以便对整个运输过程实施严格的管理和跟踪。由于各种 因素的存在,有的时候某个码头会无法装卸货物。这时候就必须修改运输路线,让货物能够按时到达目的地。但是 修改路线是一件十分麻烦的事情,会带来额外的成本。因此物流公司希望能
2016-11-02 11:33:48 473
原创 【BZOJ 4542】大数 【莫队】
思路:当P!=2或5时,显然10^x%P!=0把后缀模P的值搞出来于是问题就便成询问区间内%P为x的分别有多少个这个再套一个莫队就可以了。 我的代码压行比较丑,我放std的代码。#include<cmath> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> const int m
2016-11-02 10:00:20 410
原创 IO加速
namespace IStream{ const int L=1<<15; char buffer[L],*S,*T; inline char Get_Char() { if(S==T) { T=(S=buffer)+fread(buffer,1,L,stdin);
2016-11-02 09:09:23 612
原创 【BZOJ 2336】任务调度 【随机化】
正解好像就是随机化2333#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cstdlib> using namespace std; const int inf=1e9; const int N=20+5; int s1[N],tp1,s2[N],tp
2016-11-01 21:12:45 652
原创 雷涛的小猫
#include<cstdio>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>using namespace std;int n,h,delta;#define N 2010int a[N][N];int dp[N][N],mx[N];int main(){ scanf("%d%
2016-11-01 20:40:55 755
原创 Tiling a Grid With Dominoes
ProblemTiling a Grid With Dominoes#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<iostream>using namespace std;int T,n;#define p(x) putchar(x)int dp[1010][1<<4];int
2016-11-01 20:21:46 695
原创 【BZOJ 3289】Mato的文件管理 【莫队+BIT】
输出优化写wa了QAQ 害我在bzoj上wa了一次。 我去。#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<iostream>#include<cctype>#include<vector>using namespace std;#define N 50010#define
2016-10-31 18:46:37 679
转载 【算法复杂度分析】主定理
规模为n的问题通过分治,得到a个规模为n/b的问题,每次递归带来的额外计算为c(n^d) T(n) <= aT(n/b)+c(n^d) 那么就可以得到问题的复杂度为: T(n) = O(n^d log(n)), if a = b^d T(n) = O(n^d ), if a < b^d T(n) = O(n^logb(a))), if a > b^d 可见,
2016-10-31 14:53:23 6589
转载 c++ 随机数
http://zhangjunhd.blog.51cto.com/113473/197020计算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子。(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,当你取得65535个随机数后它们又重复出现了。)我们知道rand()函数可以用来产生随机数,但是这不是真正意
2016-10-31 08:25:46 471
原创 【售货员的难题】
直接上搜索dfs#include<cstdio>#include<iostream>#include<ctime>using namespace std;#define N 20int n,a[N][N],ans=0x7ffffff;bool vis[N];int tot;void dfs(int u,int res){ if(!res) { ans=
2016-10-30 22:15:59 1658
原创 【洛谷P1361】小猫爬山
【简单题,请神犇移步】 某知dealpool66告诉我可以用这道题练习模拟退火。 然后我一眼看过去不是贪心吗。。#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<iostream>using namespace std;#define N 28int n,w,a[N];int a
2016-10-30 21:13:34 1726
转载 python文件操作
总是记不住API。昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧:python中对文件、文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块。得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()返回指定目录下的所有文件和目录名:os.listdir()函数用来删除一个文件:os.remove()删除多个目录:os.removed
2016-10-30 20:40:07 534
原创 【BZOJ 2038】小Z的袜子【莫队+分块裸题】
Description作为一个生活散漫的人,小Z每天早上都要耗费很久从一堆五颜六色的袜子中找出一双来穿。终于有一天,小Z再也无法忍受这恼人的找袜子过程,于是他决定听天由命…… 具体来说,小Z把这N只袜子从1到N编号,然后从编号L到R(L 尽管小Z并不在意两只袜子是不是完整的一双,甚至不在意两只袜子是否一左一右,他却很在意袜子的颜色,毕竟穿两只不同色的袜子会很尴尬。 你的任务便是告诉小Z,他有多大
2016-10-30 15:48:41 398
原创 【POJ 2348】Euclid's Game 【简单博弈】
可以用搜索的姿势写过。#include #include #include #include using namespace std;long long a,b;bool Judge(int a,int b){ if(a < b) swap(a,b); if(!b) return false; int end = a / b; for(int i = end; i >
2016-10-29 17:25:35 826
原创 【POJ 2484】A Funny Game 【简单博弈】
博弈策略: 和对方取相同的操作。这样可以保证自己能胜。#include<cstdio>#include<cmath>#include<algorithm>#include<iostream>#include<cstring>using namespace std;int n;int main(){ while(cin>>n) { if(!n)b
2016-10-29 16:32:12 409
原创 【BZOJ 2243】染色 【树链剖分】
静态查错能力显著提升233,这次3分钟就查出bug#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<iostream>#include<cctype>using namespace std;#define N 100010#define g() getchar()#define d
2016-10-28 11:53:14 766
原创 【CodeForces 208E】Blood Cousins
题意:给你一个森林,m个询问:v,p求有多少个点(除v外) 与 v的第p个祖先相同这个题首先要解决找某个点的第p个祖先的问题,可以采用倍增法记录一个二维数组p[u][i]表示u的第2^i个祖先,那么通过这个数组我们就可以知道u的上面任意深度(相对于u)祖先是谁(巧妙的利用二进制)具体求法和用法见下,还可以找LCA的const int POW = 18; void dfs(int u,int fa
2016-10-28 10:40:01 696
原创 【CodeForces 208D】Prizes, Prizes, more Prizes
#include<iostream> #include<map> #include<string> #include<algorithm> #include<cstdio> #include<cmath> using namespace std; int n,i,j; long long a[5],b[5],po[51], ans; int main() {
2016-10-28 10:35:36 366
原创 【CodeForces 208B】Solitaire
题意:类似空挡接龙的游戏。设末尾堆编号为x,每一次可以与x-3或者x-1相和。两个头牌子可配的堆可以合成,求最后是否能够和成一堆。做法:暴力搜索不可行。所以DP,那么确定无后效性状态。每个堆相和时,只需考虑x-1,x-3堆的情况。于前面的情况无关。dp[sum][a][b][c]=dp[sum-1][sum-4][b][c]||dp[sum-1][c][a][b]。这里有tirck… #inc
2016-10-28 10:32:44 375
原创 【 CodeForces 208A】Dubstep
#include<bits/stdc++.h>using namespace std;char s[1010],ans[1010];int len,p;int main(){ ios::sync_with_stdio(false);cin.tie(0); cin>>s+1;len = strlen(s+1); bool flag = false; for(int
2016-10-28 10:29:24 436
原创 [BZOJ 4034][HAOI2015]T2 [树链剖分]
要锻炼静态查错能力。orz。 update里面忘了pushdown() 了。尴尬。#include<cstdio>#include<cmath>#include<iostream>#include<algorithm>#include<cstring>#include<cctype>using namespace std;#define g() getchar()#define d
2016-10-28 10:26:52 363
原创 【BZOJ 1036】[ZJOI2008]树的统计Count 【树链剖分+线段树】
裸题.. 开始的代码有个bug,开始的build() 函数是这样写的:void build(int u,int l,int r){ tr[u].l=l,tr[u].r=r; if(l==r){ tr[u].mx=tr[u].sum=val[l]; return; }; int mid=(l+r)>>1; build(ls,l,mi
2016-10-27 12:16:30 484
原创 【HDU 2586】测板
tarjan - LCA O(n+q)#pragma comment(linker, "/STACK:1024000000,1024000000") #include <iostream> #include <string.h> #include <stdio.h> #include <vector> using namespace std; const int N = 5
2016-10-26 21:53:54 387
原创 【HDU 2544】最短路裸题【测板】
Dijkstra+Heap板 (ps:因为SPFA被卡掉特来练习Dijkstra)#include<bits/stdc++.h>using namespace std;int n,m;#define M 10010#define N 110#define mk(a,b) make_pair(a,b)typedef pair<int,int> pii;priority_queue<pi
2016-10-26 21:20:49 379
原创 卡SPFA
hdu 4889 #include<iostream> #include<cstdio> using namespace std; const int T = 30; int main() { int c; while (scanf("%d",&c)!=EOF) {
2016-10-26 16:17:03 1472
原创 【POJ 2019】2D-RMQ裸题
2D-RMQ有2种.. 预处理n^2logn 查询是O(b) 网上的多半是上面这种 还有个n^2log^2 n 查询O(1)的写法#include<cstdio>#include<iostream>#include<cmath>#include<algorithm>using namespace std;const int N = 310;int n,b,K,a[N][N],x
2016-10-25 22:21:23 714
原创 【POJ 3264】Balanced Lineup 【RMQ裸题】
题很水啊,只是拿来练习SparseTable,一种tarjan提出的数据结构。 好吧,其实就是倍增思想。因为LCA->RMQ问题中我ST表不会写所以特来练习,水一发。 如果不会ST表的可以看http://blog.csdn.net/niushuai666/article/details/6624672#include<cstdio>#include<cmath>#include<iostre
2016-10-25 17:15:05 695
原创 【HDU 2586】LCA模版题
练习LCA->RMQ的求法。qwq#include<bits/stdc++.h>using namespace std;#define g() getchar()#define d(x) isdigit(x)#define rep(i,s,t) for(int i=(s);i<=(t);i++)#define N 40010char ch;template<class T>inlin
2016-10-25 08:34:44 808
原创 [codeforces]Recover the String
根据a00和a11可以求出0和1的个数;把cnt1个1放在前面,cnt0个0放在后面,此时的01串为0,当把0往前移动一位是01的个数会增加一,所以可以根据a01的个数移动0的位置;当然在当a00为0时0的个数可能是0个也可能是1个要看a01和 a10同样1的个数也是一样;有对应的串时应满足1的个数*0的个数 = a01+a10的;#include <iostream>#include <stdi
2016-10-24 21:10:34 705
原创 [codeforces]Levko and Permutation
辣鸡构造题#include<bits/stdc++.h>using namespace std;int n,k;int g[100010],cnt;int main(){ cin>>n>>k; if(n==k){puts("-1");return 0;} for(int i=n-k+1;i<=n;i++)g[i]=i; g[1]=n-k; for(i
2016-10-24 21:09:21 638
原创 [codeforces]Checkpoints
#include<bits/stdc++.h>using namespace std;int n,st;int a[100010];int p,ls,rs,ans=0x3f3f3f3f;int main(){ cin>>n>>st; if(n==1){cout<<0;return 0;} for(int i=1;i<=n;i++)cin>>a[i]; so
2016-10-24 21:08:22 661
原创 [codeforces] Juicer
#include<bits/stdc++.h>using namespace std;int n,b,d,ans,sum;int a[100010];int main(){ cin>>n>>b>>d; for(int i=1;i<=n;i++)cin>>a[i]; for(int i=1;i<=n;i++) { if(a[i]>b)conti
2016-10-24 21:07:22 669
原创 【BZOJ 3631】松鼠的新家 【LCA+树上差分】
题很水,人比某Qwsin更蠢。 dfs2里面递归写成了dfs…orz…跪了.. 我还以为前面挂了结果最后算sum的时候..#include<cstdio>#include<iostream>#include<cstring>#include<cmath>#include<algorithm>#include<vector>#include<cctype>using namespac
2016-10-24 17:36:31 716
转载 Bign类 高精度模版
#include #include #include #include #include #include using namespace std; const int MAXN = 410; struct bign { int l
2016-10-21 17:07:14 771
转载 模算术和求余
对于整型数a,b来说,取模运算或者求余运算的方法都是:1.求 整数商: c = a/b;2.计算模或者余数: r = a - c*b.求模运算和求余运算在第一步不同: 取余运算在取c的值时,向0 方向舍入(fix()函数);而取模运算在计算c的值时,向负无穷方向舍入(floor()函数)。例如:计算-7 Mod 4那么:a = -7;b = 4;第一步:求整数商c,如进行求
2016-10-21 17:05:36 1260
转载 【Java常用类库】_大数操作(BigIntger、BigDecimal)
Ref: http://blog.csdn.net/e421083458/article/details/8551859本章目标:可以使用 BigInteger操作大整数大数据操作。正常情况下一个整数只能放在long类型之中,但是如果现在有如下的一个数字:111111111111111111111111111111111111111111111111111111111111
2016-10-20 17:37:03 403
原创 【NOIP 2012】Vigenère 密码
#include#include#include#include#include#includeusing namespace std;const int N = 1010;char m[N],c[N],k[N];int lenk,lenc;//m 明 c 密 k 钥 #define F(x) (x-'A'+1) int main(){ freopen("vigener
2016-10-20 10:45:17 620
原创 【BZOJ 1801】中国象棋
题解:显然问题就是一行一列最多只能放两个棋子,求方案数dp:f[i][j][k]表示前i行已经有j列有一个棋子,k列有两个棋子的方案数那么第i行可以不放棋子、放一个棋子、放两个棋子。其中,棋子可以放在原来没有棋子的某一列上,也可以放在已经有一个棋子的某一列上。但是已经有两个棋子的列上是不能放的。然后要分6种情况讨论下。这里想法其实不难,但是容易乱……我还wa了一次1、不
2016-10-19 20:38:21 536
C++_STL使用例子大全
2016-07-30
Learning the vi and Vim Editors
2016-07-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人