include<iostream> include<vector> defineMAX1010 usingnamespacestd; vector<int>len; //这里我返回的满足len[k]>=val[i]且k最小的位置 //和上文红色部分的描述是等价的,只是变成了更新len[k],而不是len[k+1] intbisearch(intval){ intleft=0,right=len.size()-1; while(left<=right){ intmid=(left+right)>>1; if(len[mid]&...

用BIT或线段树维护的神马东西,碰到这种东西智商就没有了…… 看了网上的基本所有博客,终于想明白了, 最终又看了kuangbin简单的总结: 代码: include<stdio.h> include<string.h> include<stdlib.h> include<iostream> include<algorithm> include<math.h> include<vector> include<set> include<stack> include<queue&g...

题解By kuangbin: 直接数学公式搞。 n个非负整数的和为m的解个数为C(n+m-1,n-1) 如果其中一个位置选择了i,那么其余的就是C(n-1+m-i–1,n-2),这就是这个位置i出现次数, 然后位置有n个,再乘以n. 根据欧拉定理,指数对1e9+6取模。 弱成狗。。。 include<stdio.h> include<stdlib.h> include<string.h> include<vector> include<iostream> include<string> includ...

include<stdio.h> include<string.h> include<stdlib.h> include<iostream> include<algorithm> usingnamespacestd; definelllonglong defineN100010 intin[N]; intans[N]; intcnt; intLowbit(intt) { returnt&(-t); } intSum(intp) { intsum=0; while(p>0) { sum+=in[p]; p-=Low...

sg函数,能到达0的点,赋值为1. include<cstdio> include<cstring> include<stdlib.h> include<algorithm> include<iostream> include<math.h> include<vector> include<map> include<string> usingnamespacestd; definelllonglong intsg[1000010]; charch[6]; intG(intx) ...

include<cstdio> include<cstring> include<algorithm> include<iostream> include<cstdlib> include<vector> usingnamespacestd; defineinf0x3f3f3f3f vector<int>f[155]; intd[155],dp[155][155]; intflag[155]; intn,p; voiddfs(intv) { flag[v]=1; inti,j,k; for(i=0;...

include<iostream> include<stdio.h> include<string.h> include<algorithm> usingnamespacestd; intv[1010],w[1010],f[1010]; intmain() { intt; cin>>t; while(t--) { intn,V; cin>>n>>V; inti,j; for(i=0;i<n;i) cin>>v[i]; for(i=0;i<n;i) ...

  VrZI4Uwu8BR1   2023年11月02日   94   0   0 i++#includei++cici#include

include<cstdio> include<iostream> include<string.h> include<algorithm> include<stdlib.h> include<math.h> include<vector> include<iomanip> usingnamespacestd; intdp[1550][2]; vector<int>f[1550]; intp[1550]; voiddfs(intv) { if(f[v].size()0) { dp...

用了2天多,尼玛的,幸好有ZY大神讲解及对代码调试助攻。。自己程序太渣,还是上ZY代码吧。。 HanXinCountSoldiers 时间限制:1秒 内存限制:64M Description InancientChina,thereisagreatgeneralnamedHanXin.Onedayhewantedtoknowhowmanysoldiershehad.Soheaskedhissoldierstostandinonelineforevery3soldiers,andthereare2left.Thenheaskedhissoldierstostandinonelin...

BIT1046LeftmostDigit: 本人代码: include<stdio.h> include<string.h> include<math.h> definepiacos(-1.0) defineeexp(1.0) intmain() { intt; scanf("%d",&t); while(t--) { inti,j,k; doubletemp=0,n; scanf("%lf",&n); if(n>10) { temp=log10(sqrt(2pin))+nlog10(n/e)...

题意: n种糖果,分给k个人。 每种糖果个数p[i]; 要求每个人只能分一种糖果。 求每个人最多能分几个糖果。 例: 输入: 411 //n,k 2468  //每种糖果的个数 输出: 1          //每个人最多能分的糖果数 二分答案。。。 include<stdio.h> include<string.h> include<stdlib.h> include<algorithm> usingnames...

最基础模板 include<stdio.h> include<string.h> include<algorithm> usingnamespacestd; defineV110//点的个数 defineE5100//边的个数 intparent[V]; introot(intp) { if(parent[p]-1)returnp; elsereturnparent[p]=root(parent[p]); } voidmerge(inta,intb) { a=root(a); b=root(b); parent[a]=b; } struct...

凸包问题。 先按x坐标排序,x一样的按y排序。 取p【0】为开始点,每个点与开始点相连,按x轴正方向,每条线段与x轴的夹角由小到大排序。 然后选点求距离。。。 本题求凸包的边长+以L为半径的园的周长。 //自己的凸包模板 include<stdio.h> include<string.h> include<math.h> include<algorithm> usingnamespacestd; definepiacos(-1.0) defineN100100 defineinf0x3f3f3f3f structnode { doubl...

给一段数列,求连续数列和的最大值, 此题是二维的,将i行到j行相加,转换为一行了,就是一维的了 include<stdio.h> include<iostream> include<string.h> usingnamespacestd; intp[110][110],b[110]; intn; intcom(intb)//算一维的函数 { inti,j,k,sum=0,max=-1; for(i=0;i<n;i) { sum+=b[i]; if(sum<0)sum=0; max=max>sum?max:sum;...

  VrZI4Uwu8BR1   2023年11月02日   53   0   0 i++#includeiosdp#includeiosi++dp

第一次写线段树啊,当模板用的以后。。。 include<iostream> usingnamespacestd; structnode{ nodepleft,pright; intL,R; longlonglnc; longlongnsum; }; nodetree[1000000]; intncount=0; intmid(nodep) { return(p->L+p->R)/2; } voidbuildtree(nodep,inta,intb) { p->L=a; p->R=b; p->lnc=0; p->nsu...

  VrZI4Uwu8BR1   2023年11月02日   64   0   0 i++i++ios线段树ios线段树

没啥说的,计算点之间的距离,然后最小生成树。。 include<stdio.h> include<string.h> include<stdlib.h> include<math.h> intparent[101]; introot(intp) { if(parent[p]-1)returnp; elsereturnparent[p]=root(parent[p]); } voidmerge(inta,intb) { a=root(a); b=root(b); parent[a]=b; } structpos{ inta,b; dou...

解法一:把每个方块,当成3个点,地面设为p[0]点,有向图的 最长路,用floyd水过 其实应该用 dp做的。。 include<stdio.h> include<string.h> include<stdlib.h> include<algorithm> include<iostream> include<math.h> usingnamespacestd; intn,i,j,k; structnode{ inta,b,len; }p[100]; intmap[100][100]; in...

首先弄明白next[]数组的意义,next[i]表示第i个数的前L个字符串等于后L 个数的字符串,且字符串长度最长,即L最大; 例如:字符串 abcabcda next[0]=-1;  next[1]=0; a next[2]=0; ab next[3]=0; abc next[4]=1; abca, next[5]=2; abcab, next[6]=3; abcabc, next[7]=0; abcabcd, next[8]=1; abcabcda, 求法: voidgetne...

求母串里有多少个子串。。 include<stdio.h> include<string.h> include<stdlib.h> charp[1000050],s[1000050]; intnext[1000050]; intn1,n2; voidgetnext() { intk=-1,j=0; next[0]=-1; while(j<n1){ if(k-1||p[k]p[j]){ k; j; next[j]=k; } else{ k=next[k]; } } } intcom() { i...

  VrZI4Uwu8BR1   2023年11月02日   52   0   0 i++#include子串kmpkmp#includei++子串

本题要用高精度,表示不会,上网找的高精度模板。。。 本题dp【i】表示用i个火柴所能组成的数的个数, 核心代码: for(i=1;i<=9;i)//0不能当第一个数,所以没赋初值 dp[a[i]]=dp[a[i]]+one;//先赋初值,one是高精度的1. for(i=1;i<=2000;i) for(j=0;j<=9;j) dp[i+a[j]]=dp[i+a[j]]+dp[i];//递推求 dp[6]=dp[6]+one;//单独将0这个数的情况加上1. for(i=1;i<=2000;i) dp[i]=dp[i]+dp[i-1];//由...

关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~