【LYOI2016】EasyRound1
这可能是给新高一写的吧……随手写着玩玩……
A:随便模拟
#include<cstdio> #include<cstring> using namespace std; int n,m,k,x,y; inline int read(){ int f=1,x=0;char ch; do{ch=getchar();if(ch=='-')f=-1;}while(ch<'0'||ch>'9'); do{x=x*10+ch-'0';ch=getchar();}while(ch>='0'&&ch<='9'); return f*x; } int main(){ n=read();m=read();k=read(); int a[n+1][m+1]; memset(a,0,sizeof(a)); for(register int i=1;i<=k;++i){ x=read(),y=read(); if(x==1)for(register int j=1;j<=m;++j)a[y][j]=i; else for(register int j=1;j<=n;++j)a[j][y]=i; } for(register int i=1;i<=n;++i){ for(register int j=1;j<=m;++j)printf("%d ",a[i][j]); puts(""); } }
B:就是问你二进制拆分后有几位……
#include<bits/stdc++.h> using namespace std; typedef unsigned long long ll; ll x; int main(){ cin>>x;int ans=0; while(x){ ans++;x>>=1; } printf("%d\n",ans); }
C:随手写完猜一个递推式。
#include<bits/stdc++.h> #define yql 15746 #define N 1000010 using namespace std; typedef long long ll; int f[N],n; int main(){ scanf("%d",&n); f[0]=1;f[1]=1; for(int i=2;i<=n;i++)f[i]=((f[i-1]%yql)+(f[i-2]%yql))%yql; printf("%d\n",f[n]); return 0; }
zzq wc-ctsc-apio-NOI Au;yql精通多项式;zyz精通女装;由乃精通数据结构;孔老师是毒奶大师;我没有学上:我们都有光明的前途。