自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 随机数生成

把MSDN的例子复制过来了// compile with: /EHsc /W4 #include <random> #include <iostream> #include <iomanip> #include <string> #include <map> void test(const double a...

2018-05-04 17:05:05 146

转载 char和wchar_t的一些函数

转载自:http://blog.csdn.net/wangyouxiang/article/details/169945392.宽字符处理函数函数与普通函数对照表 宽字符函数 普通C函数        函数描述 iswalnum() isalnum() 测试字符是否为数字或字母 iswalpha() isalpha() 测试字符是否是字母 iswcntrl() iscntrl() 测试字符是否是控...

2018-03-07 22:51:28 918

转载 ANSI和Unicode互相转换

转载自:http://blog.csdn.net/k346k346/article/details/50082705#include <windows.h>#include <iostream>using namespace std;int main(){ wchar_t* ws=L"测试字符串"; char* ss="ABC我们"; in...

2018-03-07 22:49:27 6261

原创 test

test

2017-12-02 16:34:29 149

原创 map的一边遍历一边删除

it_pre=it=m.begin();it++;for(;it!=m.end();){ if((*it).second>(*it_pre).second){ it_save=it; it++; m.erase(it_save); continue; } it_pre=it; it++;}

2017-11-07 20:31:58 5898

转载 原根

转载自:http://blog.csdn.net/acdreamers/article/details/8883285

2017-10-17 14:35:33 432

原创 Polycarp's phone book

对于001,1处理会出问题的情况,再所有的数字前面再加一个1,就变成1001和11,区分开来了,itoa函数codefoeces上c++14才有#include#include#include#include#include#includeusing namespace std;char str[70000+10][10];char s[10];map

2017-09-18 19:24:24 427

转载 bitset

http://blog.csdn.net/iamiman/article/details/53941118

2017-09-11 13:16:36 158

原创 二次剩余

2017-09-01 22:35:27 297

原创 poj2417大步小步法

a^x≡b (mod n)令x=im+j,m=ceil(n)   0a^j≡b*(a^(-m))^i    mod(n)用hash表存储a^0,a^1……a^(m-1),枚举i,找是否存在对应的j,存在即有解#include#include#include#include#includeusing namespace std;struct node{ int

2017-09-01 21:39:22 341

原创 训练指南计数问题

统计有n个顶点的连通图有多少个,每个顶点有编号。设f(n)为所求的答案,g(n)为顶点个数为n的非连通图个数。有f(n)+g(n)=h(n)=2^(n(n-1)/2)。计算g(n),考虑1所在的连通分量,假设该连通分量有k个点,那么这k个点有C(n-1,k-1)种,当点确定之后,1所在的连通分量有f(k)种,与1不在同一个连通分量的有h(n-k)种,所以有g(n)=sigma(C(n-1,

2017-08-29 15:47:32 219

原创 hdu1085母函数模板

#include#include#includeusing namespace std;const int maxn=8000;int c1[maxn+10],c2[maxn+10],last,last2;int main(){ int money[4]={0,1,2,5},num[4],x; while(scanf("%d%d%d",&num[1],&num[2],&

2017-08-28 22:51:00 264

原创 知道了内存池的作用...poj3580

#include#include#include#includeusing namespace std;#define Key_value ch[ch[root][1]][0]const int MAXN=200010;const int INF=0x3f3f3f3f;int pre[MAXN],ch[MAXN][2],key[MAXN],size[MAXN],add[MAXN],

2016-09-09 21:52:56 255

原创 Splay——kuangbin自己改了一下,比较喜欢

#include#include#include#includeusing namespace std;const int MAXN=100010;int pre[MAXN],ch[MAXN][2],size[MAXN],root;//父结点、左右孩子、子树规模、根结点、结点数量int key[MAXN];//该点的值int add[MAXN];//增量的延迟标记long lon

2016-09-08 21:25:09 404

原创 Splay——kuangbin

#include #include #include #include using namespace std;#define Key_value ch[ch[root][1]][0]const int MAXN=100010;int pre[MAXN],ch[MAXN][2],size[MAXN],root,tot1;//父结点、左右孩子、子树规模、根结点、结点数量int key

2016-09-07 13:29:00 561

转载 Splay——kuangnin的模版

bzoj1588#include #include #include #include using namespace std;const int INF=0x3f3f3f3f;const int MAXN=1000010;int pre[MAXN],ch[MAXN][2],key[MAXN];int root,tot1;void NewNode(int &r,int fa

2016-09-06 19:39:51 259

原创 AVL树模版

#include#include#includeusing namespace std;struct AVL_tree_node{ char name[31]; int cnt,height; AVL_tree_node *pleft; AVL_tree_node *pright;};int n=0,W=0;int Height(AVL_tree_n

2016-09-06 00:05:24 204

原创 同余方程的合并——codeforces338D

#include#include#include#includeusing namespace std;long long m[10002],n,M,lcm;int k;long long gcd(long long a,long long b){ return b?gcd(b,a%b):a;}long long egcd(long long a,long long b

2016-09-01 17:18:05 704

原创 高斯消元枚举自由元——poj1222

#include#include#include#includeusing namespace std;int a[230][230],x[230],free_x[230],free_num,r,c;int Gauss(){ int k,col,max_r,i,j; for(free_num=k=col=0;k<r&&col<c;col++) //枚举行,列从0开始

2016-08-28 23:10:58 464

原创 高斯消元

#include#include#include#include#includeusing namespace std;int a[72][72],x[72],r,c,mod;int gcd(int a,int b){ return b?gcd(b,a%b):a;}int lcm(int a,int b){ return a/gcd(a,b)*b;}int

2016-08-28 16:34:02 360

原创 矩阵快速幂

#include#includeint mod;struct matrix{ int a[5][5];}E;int pow_mod(int a,int b){ int res=1; while(b) { if(b&1) res=res*a%mod; a=a*a%mod; b>>=1; }

2016-08-26 20:12:26 374

原创 线段树——扫描线

#include#include#include#includeusing namespace std;struct node{ int l,r,cnt,cover; //cover标记,1表示这个区间全部出现过了,0表示部分出现,-1表完全没出现过 double len;}tree[605];struct line{ double l,r,y;

2016-08-12 17:55:45 213

原创 坐标轴旋转+二维树状数组离散化

将坐标轴旋转45°,再乘√2    y’=y-x  x’=x+y,这样子原来的菱形就变成了矩形,因为y-x可以是负数,所以加上(N=2*n)但是数组开不下,用hash函数  a*N+b来离散化,sort排序,再unique去重。#include#include#include#includeusing namespace std;const int MAX=80008;

2016-08-10 23:18:25 365

原创 AC自动机

#include#include#include#includeusing namespace std;int child[240000][26],tot;int fail[240000],num[240000];char txt[1000002],s[51];void ac_insert() //trie树的建立{ int now=1,i,x,l=str

2016-07-29 09:22:05 320

原创 强连通分量——tarjan

#include#include#include#include#include#includeusing namespace std;stack a;vector g[100];bool instack[100];int dfn[100],low[100],time;void tarjan(int v){ dfn[v]=low[v]=++time; a.p

2016-07-26 11:09:14 188

原创 强连通分量——Kosaraju算法

①随意选取一个结点开始深搜,当搜索完子树时将它压到栈中②将原图转置(边的方向变成与原来相反),从栈顶节点再进行深搜,每次深搜结束所得的节点就是一个强连通分量#include#include#include#include#include#includeusing namespace std;vector g[100],gt[100];bool visit[100];

2016-07-25 16:02:26 496

原创 LCA离线算法

#include#include#include#includeusing namespace std;vector c[10005];bool visit[10005];int n,p[10005],U,V;int Find(int x){ return x==p[x]?x:p[x]=Find(p[x]);}void dfs(int root,int fa){

2016-07-22 10:20:50 191

原创 poj1330

LCA#include#include#include#includeusing namespace std;vector c[10005];int n,cnt,first[10005],dfs_val[20100],dfs_deep[20100];int dp[20100][16];void dfs(int root,int deep){ dfs_deep[++cn

2016-07-21 16:51:14 191

原创 Lucas定理

对于n≥m,素数pC(n,m)%p=πC(n1,m1)%p(将n和m转换成p进制后对每一位计算组合数,然后相乘)#includelong long pow_mod(int a,int b,int m){ long long t=a%m,res=1; while(b) { if(b&1) res=res*t%m; t=t*t

2016-07-18 13:09:45 185

原创 逆元

ax≡1(mod  m)逆元的求法:①扩展欧几里德(要求a,m互质)②费马小定理(要求m为素数)③逆元表    inv[i]=(m-m/i)*inv[m%i]%m

2016-07-18 13:05:35 157

原创 等比数列求和快速幂

CF-678D看求的和(a^n-1)/(a-1)按奇偶递推#includeusing namespace std;const long long m=1e9+7;long long mul(long long a,long long b){ long long t=a%m,res=0; while(b) { if(b&

2016-06-14 14:06:49 1253

原创 UVA1658

学到了拆点法,很奇妙很厉害#include#include#include#include#includeusing namespace std;const int INF=0x7fffffff;const int maxn=2010;struct Edge{ int from,to,cap,flow,cost; Edge(int u,int v,int f,

2016-05-26 20:34:23 368

原创 最小费用最大流

输出用I64竟然PE,lld就ac了,坑爹啊#include#include#include#include#includeusing namespace std;const int INF=0x7fffffff;const int maxn=2010;struct Edge{ int from,to,cap,flow,cost; Edge(int u

2016-05-25 16:48:59 231

原创 UVA11082

最大流问题,然而没想到...第i行到第j列的最大流,就是(i,j)元素,太弱了我,想不到啊。同时在算节点的cap时,1~20的范围转换成0~19,把每一行的值减去c,每一列的值减去r。#include#include#include#include#includeusing namespace std;const int INF=0x7fffffff;struct

2016-05-10 21:46:15 797

原创 hdu1074

简单的状态压缩,用二进制数i表示该状态下完成的课程,枚举该状态从某个状态转移过来,计算score#include#include#includeusing namespace std;struct node{ char a[101]; int dead,cost;}str[16];struct kk{ int pre,time,score;

2016-05-07 21:24:12 309

原创 hdu2089不要62

初学数位#include#includeint f[6][3],n,m;//f[i][0]表示前i位吉利的个数//f[i][1]表示前i位以2为首位的吉利个数//f[i][2]表示前i位长的数字中不吉利数字的个数,1~999……9(i个9)void pre(){ int i; memset(f,0,sizeof(f)); f[0][0]=1;

2016-05-04 18:41:07 427

原创 most powerful ZOJ3471

用0表示存在原子,1表示原子已经被撞掉了。。。 dp[j]表示状态为j的时候的most powerful,对于j的二进制,寻找两个不同的0,状态转移。#include#include#includeusing namespace std;int a[11][11],dp[1025],s[12]={0,1,2,4,8,16,32,64,128,256,512,1024};i

2016-05-03 19:05:04 254

原创 炮兵阵地poj1185

用vecotr a[61]来存每一行符合单行要求的编号。bool map[i][j]用来表示编号i和编号j能否在一条直线上#include#include#include#include#includeusing namespace std;struct node{ int num,val;}v[61];int s[11],cnt=0,n,m;int

2016-05-03 15:05:22 297

原创 poj2287田忌赛马

首先明确田忌每次出马不是最快就是最慢,dp[i][j]为田忌第i到第j匹马和齐王比赛的结果,dp[i][j]=max(dp[i+1][j]+judge(i,k),dp[i][j-1]+judge(j,k)),枚举齐王出了前k匹马。#include#include#include#includeusing namespace std;int dp[1002][1002],t

2016-04-29 16:26:00 381

原创 poj2955,开始学习区间dp了

—题目大意:给出一个括号序列,求出其中匹配的括号数((()))  6()()()  6—([]]) 4— )[)(  0([][][)  6—第一步:确定状态—dp[i][j]表示a[i]……a[j]的串中,有多少个已经匹配的括号—第二步:确定状态转移方程—如果a[i]与a[k]是匹配的—dp[i][j]= max

2016-04-26 19:42:39 192

空空如也

空空如也

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

TA关注的人

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