2017.10.26 四校联测D1
来源:互联网 发布:mysql 解锁 编辑:程序博客网 时间:2024/05/01 12:40
题目比以前的题不知道高明到哪里去了,虽然std有错+数据有问题
T1 地精部落原题
#include<iostream>#include<cstdio>using namespace std;long long n,p,dowh,ans,i,f[2][5000][2],j;int main(){freopen("rabbit.in","r",stdin);freopen("rabbit.out","w",stdout);cin>>n>>p;dowh=1; f[0][1][0]=1; f[0][1][1]=1; f[0][2][1]=1;f[0][2][0]=1;for(i=3;i<=n;i++,dowh^=1){for(j=1;j<=i;j++)f[dowh][j][0]=f[dowh^1][j][1];for(j=1;j<=i;j++)f[dowh][j][1]=f[dowh^1][j-1][0];if(i!=n){for(j=i;j>=1;j--)f[dowh][j][1]=(f[dowh][j][1]+f[dowh][j+1][1])%p; for(j=1;j<=i;j++)f[dowh][j][0]=(f[dowh][j][0]+f[dowh][j-1][0])%p;}}dowh^=1;for(i=1;i<=n;i++){ans+=f[dowh][i][0];ans%=p;ans+=f[dowh][i][1];ans%=p;}cout<<ans%p;}
T2模拟:
#include<iostream>#include<cstdio>using namespace std;int T,n,m,i,j,tong[29];char x;int main(){freopen("quilt.in","r",stdin);freopen("quilt.out","w",stdout);scanf("%d",&T);while(T--){for(i=0;i<=25;i++)tong[i]=0;scanf("%d%d",&n,&m);for(i=1;i<=n;i++)for(j=1;j<=m;j++){scanf("%c",&x);while(x<'a'||x>'z')scanf("%c",&x);tong[x-'a']++;}bool keyi=1;if(n%2&&m%2)//双奇 { for(i=1;i<=(m/2)*(n/2);i++)//4个的{for(j=0;j<=25;j++){if(tong[j]>=4){tong[j]-=4;break;}}if(j==26)keyi=0;} for(i=1;i<=(m/2)+(n/2);i++)//2个的{for(j=0;j<=25;j++){if(tong[j]>=2){tong[j]-=2;break;}}if(j==26)keyi=0;}}elseif(n%2==0&&m%2==0)//双偶 { for(i=1;i<=(m/2)*(n/2);i++)//4个的{for(j=0;j<=25;j++){if(tong[j]>=4){tong[j]-=4;break;}}if(j==26)keyi=0;}}elseif(n%2)//n奇 { for(i=1;i<=(m/2)*(n/2);i++)//4个的{for(j=0;j<=25;j++){if(tong[j]>=4){tong[j]-=4;break;}}if(j==26)keyi=0;} for(i=1;i<=(m/2);i++)//2个的{for(j=0;j<=25;j++){if(tong[j]>=2){tong[j]-=2;break;}}if(j==26)keyi=0;}}else//m奇 { for(i=1;i<=(m/2)*(n/2);i++)//4个的{for(j=0;j<=25;j++){if(tong[j]>=4){tong[j]-=4;break;}}if(j==26)keyi=0;} for(i=1;i<=(n/2);i++)//2个的{for(j=0;j<=25;j++){if(tong[j]>=2){tong[j]-=2;break;}}if(j==26)keyi=0;}}if(keyi){cout<<"Yes\n";}else cout<<"No\n"; }}
T3dfs
#include<iostream>#include<cstdio>#include<cstring>using namespace std;#define N 5000005int n,i,xia[N],hou[N<<1],zhong[N],d,q;long long ni,f[N],ff[N],ans,sz[N],x,y,p,tot,lin=0;bool bj[N];#define P 1000000007char xch,xB[1<<15],*xS=xB,*xTT=xB;inline int read(){int x=0,f=1;char ch=getchar();while(ch<'0'|ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;}void exgcd(int a,int m){if(m==0){x=1;y=0;return;}exgcd(m,a%m);long longtemp=y;y=x-a/m*y;x=temp;}void jian(int a,int b){++tot;hou[tot]=xia[a],xia[a]=tot,zhong[tot]=b;}void jia(int a,int b){jian(a,b);jian(b,a);}void dfs(int o,int fa,int dis){int i,last=0;if(dis==d)bj[o]=1;for(i=xia[o];i!=-1;i=hou[i]){int nd=zhong[i];if(nd==fa)continue;dfs(nd,o,dis+1);sz[o]+=sz[nd];last=nd;}if(last==0){sz[o]=1;if(dis<=d)bj[o]=1;}}void dfs1(int o,int fa){int i;if(bj[o]){for(i=xia[o];i!=-1;i=hou[i]){int nd=zhong[i];if(nd==fa)continue;ans=(ans+(sz[o]-sz[nd])*sz[nd]%P*p%P*ni%P)%P;tot+=(sz[o]-sz[nd])*sz[nd];tot%=P;//一个点独立的总数 //cout<<endl<<" "<<(sz[o]-sz[nd])*sz[nd]<<" "<<p*ni<<" "<<(sz[o]-sz[nd])*sz[nd]*p*ni<<endl;}return;}else{for(i=xia[o];i!=-1;i=hou[i]){int nd=zhong[i];if(nd==fa)continue;dfs1(nd,o);}}}void dfs2(int o,int fa){if(bj[o]){f[o]=sz[o];//对于叶子节点,f一开始存叶子个数return;}int i,he=0;for(i=xia[o];i!=-1;i=hou[i]){int nd=zhong[i];if(nd==fa)continue;dfs2(nd,o);f[o]=(f[o]+f[nd]*p%P*ni%P)%P;//nd所有到nd的路径 一步到o}}void dfs3(int o,int fa)//统计贡献 {if(bj[o]){ans=(ans+sz[o]*ff[o]%P*p%P*ni%P)%P;lin+=sz[o];return ;}int i;for(i=xia[o];i!=-1;i=hou[i]){int nd=zhong[i];if(nd==fa)continue;ff[nd]=(ff[o]+f[o]-f[nd]*p%P*ni%P+P)%P*p%P*ni%P;//ff处理f节点刀塔的信息dfs3(nd,o); }}void dfs4(int o,int fa){int i;if(bj[o]){tot+=(lin-sz[o])*sz[o];tot%=P;return;}for(i=xia[o];i!=-1;i=hou[i]){int nd=zhong[i];if(nd==fa)continue;dfs4(nd,o);}}int main(){freopen("mosquito.in","r",stdin);freopen("mosquito.out","w",stdout);memset(xia,-1,sizeof(xia));n=read();for(i=1;i<n;i++){x=read();y=read();jia(x,y);}d=read();p=read();q=read();exgcd(q,P);ni=x;tot=0;//cout<<ni<<" ";p=q-p;dfs(1,0,0);dfs1(1,0);dfs2(1,0);dfs3(1,0);dfs4(1,0);cout<<((tot-ans)%P+P)%P;}
阅读全文
0 0
- 2017.10.26 四校联测D1
- NOIP2017多校联测&提高组模拟26-A
- NOIP2017多校联测&提高组模拟21 11.3
- NOIP2017多校联测&提高组模拟23--A组
- NOIP2017多校联测&提高组模拟24-A
- NOIP2017多校联测&提高组模拟25-A
- D1
- D1
- d1
- Galaxy OJ 六校联测4 T4:切蛋糕(二分答案)
- Arduino--基础(四)--weMos D1 ESP8266模块的使用
- Arduino--基础(四)--weMos D1与DHT11一起使用
- JMeter多机联测配置
- C++虚继承(四) --- /d1 reportSingleClassLayout插入看类内存布局
- CIF,D1,HALF D1,FULL D1
- D1.gif
- taw d1
- 视频格式D1
- C++中cout输出字符型指针地址值的方法
- AGC 013
- Centos国内下载源
- 1095. Cars on Campus (30)
- 列表和元组
- 2017.10.26 四校联测D1
- GNU RADIO中常见模块的作用
- pytorch初学(1)(安装及入门)
- 一个故事来说NIO
- nagios(centos7.3环境) 的源码安装
- Java开发环境的搭建以及使用eclipse从头一步步创建java项目
- STL之set
- Codeforces Round #306 (Div. 2) A. Two Substrings string两个函数使用
- Hibernate中Session的load和get方法的区别是什么?