小鸡腿U T7 NEERC2011
来源:互联网 发布:路过蜻蜓 知乎 编辑:程序博客网 时间:2024/04/29 20:24
[TOC]
题目:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&category=527
ASCII Area
#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<functional>#include<iostream>#include<cmath>#include<cctype>#include<ctime>#include<iomanip> #include<vector>#include<string>#include<queue>#include<stack>#include<map>#include<sstream>using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#define Rep(i,n) for(int i=0;i<n;i++)#define ForD(i,n) for(int i=n;i;i--)#define ForkD(i,k,n) for(int i=n;i>=k;i--)#define RepD(i,n) for(int i=n;i>=0;i--)#define Forp(x) for(int p=Pre[x];p;p=Next[p])#define Forpiter(x) for(int &p=iter[x];p;p=Next[p]) #define Lson (o<<1)#define Rson ((o<<1)+1)#define MEM(a) memset(a,0,sizeof(a));#define MEMI(a) memset(a,127,sizeof(a));#define MEMi(a) memset(a,128,sizeof(a));#define INF (2139062143)#define F (1000000007)#define pb push_back#define mp make_pair #define fi first#define se second#define vi vector<int> #define pi pair<int,int>#define SI(a) ((a).size())#define Pr(kcase,ans) printf("Case #%d: %I64d\n",kcase,ans);#define PRi(a,n) For(i,n-1) cout<<a[i]<<' '; cout<<a[n]<<endl;#define PRi2D(a,n,m) For(i,n) { \ For(j,m-1) cout<<a[i][j]<<' ';\ cout<<a[i][m]<<endl; \ } #pragma comment(linker, "/STACK:102400000,102400000")typedef long long ll;typedef long double ld;typedef unsigned long long ull;ll mul(ll a,ll b){return (a*b)%F;}ll add(ll a,ll b){return (a+b)%F;}ll sub(ll a,ll b){return ((a-b)%F+F)%F;}void upd(ll &a,ll b){a=(a%F+b%F)%F;}int read(){ int x=0,f=1; char ch=getchar(); while(!isdigit(ch)) {if (ch=='-') f=-1; ch=getchar();} while(isdigit(ch)) { x=x*10+ch-'0'; ch=getchar();} return x*f;} char s[1000][1000];int main(){// freopen("A.in","r",stdin);// freopen(".out","w",stdout); int n,m; while(cin>>n>>m) { Rep(i,n) { scanf("%s",s[i]); } int t=0,b=0; Rep(i,n) Rep(j,m) if (s[i][j]!='.') t++; Rep(i,n) { bool f=0; Rep(j,m) if (s[i][j]!='.') f^=1; else b+=f; } cout<<b+t/2<<endl; } return 0;}
Binary Encoding
#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<functional>#include<iostream>#include<cmath>#include<cctype>#include<ctime>#include<iomanip> #include<vector>#include<string>#include<queue>#include<stack>#include<map>#include<sstream>using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#define Rep(i,n) for(int i=0;i<n;i++)#define ForD(i,n) for(int i=n;i;i--)#define ForkD(i,k,n) for(int i=n;i>=k;i--)#define RepD(i,n) for(int i=n;i>=0;i--)#define Forp(x) for(int p=Pre[x];p;p=Next[p])#define Forpiter(x) for(int &p=iter[x];p;p=Next[p]) #define Lson (o<<1)#define Rson ((o<<1)+1)#define MEM(a) memset(a,0,sizeof(a));#define MEMI(a) memset(a,127,sizeof(a));#define MEMi(a) memset(a,128,sizeof(a));#define INF (2139062143)#define F (1000000007)#define pb push_back#define mp make_pair #define fi first#define se second#define vi vector<int> #define pi pair<int,int>#define SI(a) ((a).size())#define Pr(kcase,ans) printf("Case #%d: %I64d\n",kcase,ans);#define PRi(a,n) For(i,n-1) cout<<a[i]<<' '; cout<<a[n]<<endl;#define PRi2D(a,n,m) For(i,n) { \ For(j,m-1) cout<<a[i][j]<<' ';\ cout<<a[i][m]<<endl; \ } #pragma comment(linker, "/STACK:102400000,102400000")typedef long long ll;typedef long double ld;typedef unsigned long long ull;ll mul(ll a,ll b){return (a*b)%F;}ll add(ll a,ll b){return (a+b)%F;}ll sub(ll a,ll b){return ((a-b)%F+F)%F;}void upd(ll &a,ll b){a=(a%F+b%F)%F;}int read(){ int x=0,f=1; char ch=getchar(); while(!isdigit(ch)) {if (ch=='-') f=-1; ch=getchar();} while(isdigit(ch)) { x=x*10+ch-'0'; ch=getchar();} return x*f;} void prit(int n,int l) { if (!l) return; prit(n/2,l-1); printf("%d",n&1);}int n; int main(){// freopen("B.in","r",stdin);// freopen(".out","w",stdout); while(cin>>n) { int m=1; while((1<<m)<n) ++m; int p=(1<<m)-n; Rep(i,1<<m) { if (p) prit(i/2,m-1),p--,i++; else prit(i,m); puts(""); } } return 0;}
Dictionary Size
#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<functional>#include<iostream>#include<cmath>#include<cctype>#include<ctime>#include<iomanip> #include<vector>#include<string>#include<queue>#include<stack>#include<map>#include<sstream>using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#define Rep(i,n) for(int i=0;i<n;i++)#define ForD(i,n) for(int i=n;i;i--)#define ForkD(i,k,n) for(int i=n;i>=k;i--)#define RepD(i,n) for(int i=n;i>=0;i--)#define Forp(x) for(int p=Pre[x];p;p=Next[p])#define Forpiter(x) for(int &p=iter[x];p;p=Next[p]) #define Lson (o<<1)#define Rson ((o<<1)+1)#define MEM(a) memset(a,0,sizeof(a));#define MEMI(a) memset(a,127,sizeof(a));#define MEMi(a) memset(a,128,sizeof(a));#define INF (2139062143)#define F (1000000007)#define pb push_back#define mp make_pair #define fi first#define se second#define vi vector<int> #define pi pair<int,int>#define SI(a) ((a).size())#define Pr(kcase,ans) printf("Case #%d: %I64d\n",kcase,ans);#define PRi(a,n) For(i,n-1) cout<<a[i]<<' '; cout<<a[n]<<endl;#define PRi2D(a,n,m) For(i,n) { \ For(j,m-1) cout<<a[i][j]<<' ';\ cout<<a[i][m]<<endl; \ } #pragma comment(linker, "/STACK:102400000,102400000")typedef long long ll;typedef long double ld;typedef unsigned long long ull;ll mul(ll a,ll b){return (a*b)%F;}ll add(ll a,ll b){return (a+b)%F;}ll sub(ll a,ll b){return ((a-b)%F+F)%F;}void upd(ll &a,ll b){a=(a%F+b%F)%F;}int read(){ int x=0,f=1; char ch=getchar(); while(!isdigit(ch)) {if (ch=='-') f=-1; ch=getchar();} while(isdigit(ch)) { x=x*10+ch-'0'; ch=getchar();} return x*f;} #define MAXNode (100000*4+10)#define Sigma_size (26)int a[Sigma_size],b[Sigma_size];class Trie{public: int ch[MAXNode][Sigma_size]; int v[MAXNode],siz; Trie(int _siz=0):siz(_siz){} void mem(int _siz=0){siz=_siz; } int idx(char c){return c-'a';} void insert(char *s,int *t,int val=1) { int u=0,n=strlen(s); Rep(i,n) { int c=idx(s[i]); if (!ch[u][c]) { ++siz; MEM(ch[siz]);v[siz]=0; ch[u][c]=siz; if (i) t[c]++; } u=ch[u][c]; } v[u]=val; }}T,rT;int n; char s[44];int main(){// freopen("D.in","r",stdin);// freopen(".out","w",stdout); while(scanf("%d",&n)!=EOF) { T.mem();rT.mem(); MEM(a) MEM(b) For(i,n) { scanf("%s",s); T.insert(s,a); reverse(s,s+strlen(s)); rT.insert(s,b); } ll ans=(ll)T.siz*rT.siz; Rep(i,Sigma_size) ans-=(ll)a[i]*b[i]; Rep(i,Sigma_size) if (T.v[T.ch[0][i]]) ans++; printf("%lld\n",ans); } return 0;}
Eve
#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<functional>#include<iostream>#include<cmath>#include<cctype>#include<ctime>#include<iomanip> #include<vector>#include<string>#include<queue>#include<stack>#include<map>#include<sstream>using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#define Rep(i,n) for(int i=0;i<n;i++)#define ForD(i,n) for(int i=n;i;i--)#define ForkD(i,k,n) for(int i=n;i>=k;i--)#define RepD(i,n) for(int i=n;i>=0;i--)#define Forp(x) for(int p=Pre[x];p;p=Next[p])#define Forpiter(x) for(int &p=iter[x];p;p=Next[p]) #define Lson (o<<1)#define Rson ((o<<1)+1)#define MEM(a) memset(a,0,sizeof(a));#define MEMI(a) memset(a,127,sizeof(a));#define MEMi(a) memset(a,128,sizeof(a));#define INF (2139062143)#define F (1000000007)#define pb push_back#define mp make_pair #define fi first#define se second#define vi vector<int> #define pi pair<int,int>#define SI(a) ((a).size())#define Pr(kcase,ans) printf("Case #%d: %I64d\n",kcase,ans);#define PRi(a,n) For(i,n-1) cout<<a[i]<<' '; cout<<a[n]<<endl;#define PRi2D(a,n,m) For(i,n) { \ For(j,m-1) cout<<a[i][j]<<' ';\ cout<<a[i][m]<<endl; \ } #pragma comment(linker, "/STACK:102400000,102400000")typedef long long ll;typedef long double ld;typedef unsigned long long ull;ll mul(ll a,ll b){return (a*b)%F;}ll add(ll a,ll b){return (a+b)%F;}ll sub(ll a,ll b){return ((a-b)%F+F)%F;}void upd(ll &a,ll b){a=(a%F+b%F)%F;}int read(){ int x=0,f=1; char ch=getchar(); while(!isdigit(ch)) {if (ch=='-') f=-1; ch=getchar();} while(isdigit(ch)) { x=x*10+ch-'0'; ch=getchar();} return x*f;} #define MAXN (300000+10)class bingchaji{public: int father[MAXN],n; void mem(int _n) { n=_n; For(i,n) father[i]=i; } int getfather(int x) { if (father[x]==x) return x; return father[x]=getfather(father[x]); } void unite(int x,int y) { father[x]=getfather(father[x]); father[y]=getfather(father[y]); father[father[x]]=father[father[y]]; } bool same(int x,int y) { return getfather(x)==getfather(y); }}S;int sx[MAXN],n;bool b[MAXN];int id[MAXN];int main(){// freopen("E.in","r",stdin);// freopen(".out","w",stdout); while(cin>>n) { MEM(id) MEM(b) MEM(sx) For(i,n) { char s[2]; scanf("%s",s); sx[i]=(s[0]=='F'); b[i]=1; } int m=read(); S.mem(n+m); For(i,m) { int p=read(); if (p<0) b[-p]=0; else { int q; char c[2]; scanf("%d %s",&q,c); if (!sx[p]) p=q; S.unite(++n,p); sx[n]=c[0]=='F'; b[n]=1; } } int k=read(); For(i,n) S.getfather(i); For(i,k) { int p=read(),q=read(); id[S.getfather(p)]=q; } For(i,n) if (!id[i]) { id[i]=-i; } vi v; For(i,n) if (b[i]) { int q=id[S.getfather(i)]; v.pb(q); } sort(v.begin(),v.end()); int f=unique(v.begin(),v.end())-v.begin(); if (f<=1) { puts("YES"); } else { int p=0,q=0; Rep(i,f) if (v[i]<0) ++p; else ++q; if (q>=2) puts("NO"); else puts("POSSIBLY"); } } return 0;}
GCD Guessing Game
#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<functional>#include<iostream>#include<cmath>#include<cctype>#include<ctime>#include<iomanip> #include<vector>#include<string>#include<queue>#include<stack>#include<map>#include<sstream>using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#define Rep(i,n) for(int i=0;i<n;i++)#define ForD(i,n) for(int i=n;i;i--)#define ForkD(i,k,n) for(int i=n;i>=k;i--)#define RepD(i,n) for(int i=n;i>=0;i--)#define Forp(x) for(int p=Pre[x];p;p=Next[p])#define Forpiter(x) for(int &p=iter[x];p;p=Next[p]) #define Lson (o<<1)#define Rson ((o<<1)+1)#define MEM(a) memset(a,0,sizeof(a));#define MEMI(a) memset(a,127,sizeof(a));#define MEMi(a) memset(a,128,sizeof(a));#define INF (2139062143)#define F (1000000007)#define pb push_back#define mp make_pair #define fi first#define se second#define vi vector<int> #define pi pair<int,int>#define SI(a) ((a).size())#define Pr(kcase,ans) printf("Case #%d: %I64d\n",kcase,ans);#define PRi(a,n) For(i,n-1) cout<<a[i]<<' '; cout<<a[n]<<endl;#define PRi2D(a,n,m) For(i,n) { \ For(j,m-1) cout<<a[i][j]<<' ';\ cout<<a[i][m]<<endl; \ } #pragma comment(linker, "/STACK:102400000,102400000")typedef long long ll;typedef long double ld;typedef unsigned long long ull;ll mul(ll a,ll b){return (a*b)%F;}ll add(ll a,ll b){return (a+b)%F;}ll sub(ll a,ll b){return ((a-b)%F+F)%F;}void upd(ll &a,ll b){a=(a%F+b%F)%F;}int read(){ int x=0,f=1; char ch=getchar(); while(!isdigit(ch)) {if (ch=='-') f=-1; ch=getchar();} while(isdigit(ch)) { x=x*10+ch-'0'; ch=getchar();} return x*f;} #define MAXN (10010)int p[MAXN],tot;bool b[MAXN]={0};void make_prime(int n){ tot=0; Fork(i,2,n) { if (!b[i]) p[++tot]=i; For(j,tot) { if (i*p[j]>n) break; b[i*p[j]]=1; if (i%p[j]==0) break; } }}int main(){// freopen("D.in","r",stdin);// freopen(".out","w",stdout); int n; make_prime(10000); while(cin>>n) { int r=upper_bound(p,p+1+tot,n)-(p+1); int l=1,ans=0; while(l<=r) { ll a=p[r--]; while(a*p[l]<=n) a*=p[l++]; ans++; } cout<<ans<<endl; } return 0;}
Kingdom Roadmap
#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<functional>#include<iostream>#include<cmath>#include<cctype>#include<ctime>#include<iomanip> #include<vector>#include<string>#include<queue>#include<stack>#include<map>#include<sstream>using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#define Rep(i,n) for(int i=0;i<n;i++)#define ForD(i,n) for(int i=n;i;i--)#define ForkD(i,k,n) for(int i=n;i>=k;i--)#define RepD(i,n) for(int i=n;i>=0;i--)#define Forp(x) for(int p=Pre[x];p;p=Next[p])#define Forpiter(x) for(int &p=iter[x];p;p=Next[p]) #define Lson (o<<1)#define Rson ((o<<1)+1)#define MEM(a) memset(a,0,sizeof(a));#define MEMI(a) memset(a,127,sizeof(a));#define MEMi(a) memset(a,128,sizeof(a));#define INF (2139062143)#define F (1000000007)#define pb push_back#define mp make_pair #define fi first#define se second#define vi vector<int> #define pi pair<int,int>#define SI(a) ((a).size())#define Pr(kcase,ans) printf("Case #%d: %I64d\n",kcase,ans);#define PRi(a,n) For(i,n-1) cout<<a[i]<<' '; cout<<a[n]<<endl;#define PRi2D(a,n,m) For(i,n) { \ For(j,m-1) cout<<a[i][j]<<' ';\ cout<<a[i][m]<<endl; \ } #pragma comment(linker, "/STACK:102400000,102400000")typedef long long ll;typedef long double ld;typedef unsigned long long ull;ll mul(ll a,ll b){return (a*b)%F;}ll add(ll a,ll b){return (a+b)%F;}ll sub(ll a,ll b){return ((a-b)%F+F)%F;}void upd(ll &a,ll b){a=(a%F+b%F)%F;}int read(){ int x=0,f=1; char ch=getchar(); while(!isdigit(ch)) {if (ch=='-') f=-1; ch=getchar();} while(isdigit(ch)) { x=x*10+ch-'0'; ch=getchar();} return x*f;} #define MAXN (100010+10)int n,d[MAXN],lef;vi edge[MAXN];int t[MAXN],ti=0;void dfs6(int x,int f) { if (d[x]==1) t[ti++]=x; Rep(j,SI(edge[x]) ) { int v=edge[x][j]; if (v^f) { dfs6(v,x); } }}int main(){// freopen("K.in","r",stdin);// freopen(".out","w",stdout); while(cin>>n) { if (n==2) { int u=read(),v=read(); puts("1\n1 2"); continue; } MEM(d) lef=0; For(i,n-1) { int u=read(),v=read(); d[u]++,d[v]++; edge[u].pb(v); edge[v].pb(u); } vi v; For(i,n) if (d[i]==1) v.pb(i); int sz=SI(v); lef=sz; printf("%d\n",(sz+1)/2); ti=0; dfs6(1,0); if (lef%2==0) { Rep(i,lef/2) printf("%d %d\n",t[i],t[i+lef/2]); } else { Rep(i,1+lef/2) printf("%d %d\n",t[i],t[i+lef/2]); } For(i,n) edge[i].clear(); } return 0;}
0 0
- 小鸡腿U T7 NEERC2011
- 小鸡腿U T8 CERC2015
- 小鸡腿U T9 Dhaka2015
- 小鸡腿U T10 Tokyo2014
- 小鸡腿U T3 成都2007
- 小鸡腿U T4 福州2011
- 小鸡腿U T6 2013FINAL
- 小鸡腿U Extra 长春2015
- 小鸡腿U R I Dhaka2010
- 小鸡腿U R III 杭州2013
- 鸡腿
- Neerc2011 Dictionary Size
- 吃鸡腿
- 鸡腿的笑话--鸡腿篇
- BZOJ2632: [neerc2011]Gcd guessing game
- BZOJ2632: [neerc2011]Gcd guessing game
- BZOJ2632 [neerc2011]Gcd guessing game
- bzoj2632: [neerc2011]Gcd guessing game
- Python网络通信之socket模块(四)基于Tcp/Ip的TCP交互通信serve/client的编写过程
- Android Activity之间用intent传大量数据失败
- 安卓学习笔记之View的事件体系
- FragmentPagerAdapter和FragmentStateAdapter的关键用法:防止ViwePager切换的时候,Fragment中数据不显示
- Swift-->Realm1.0.2 数据库上手指南
- 小鸡腿U T7 NEERC2011
- 基于连续存储空间的链表实现
- HDU 1255 覆盖的面积(线段树+扫描线求面积【升级版】)
- Android View框架总结(七)View事件分发机制
- POJ 1775 (有趣的简单阶乘)
- 调账成功 对账失败处理流程反思
- 2016年暑假总结
- Hello, csdn
- VIJOS 1164 中国剩余定理 CRT