acm常用技巧三 POJ 3279
2013-11-06 13:25
246 查看
一.POJ 3279
const int dx[]={-1,0,0,0,1}; const int dy[]={0,-1,0,1,0}; int M,N; int tile[MXN][MXN]; int opt[MXM][MXN]; int flip[MXM][MXN]; int get(int x,int y){ int c=tile[x][y]; for(int d=0;d<5;++d){ int x2=x+dx[d],y2=y+dy[d]; if(0<=x2&&x2<M&&0<=y2&&y2<N) c+=flip[x2][y2]; } return c%2; } int calc(){ for(int i=1;i<M;++i) for(int j=0;j<N;++j) if(get(i-1,j)) { flip[i][j]=1; } for(int j=0;j<N;++j) if(get(M-1,j)){ return -1; } int res=0; for(int i=0;i<M;++i) for(int j=0;j<N;++j) res+=flip[i][j]; return res; } void Fun(){ int res=-1; for(int i=0;i<1<<N;++i){ memset(flip,0,sizeof(flip)); for(int j=0;j<N;++j) flip[0][N-j-1]=i>>j&1; int num=calc(); if(num>=0&&(res<0||res>num)){ res=num; memcpy(opt,flip,sizeof(flip)); } } if(res<0) puts("IMPOSSIBLE"); else{ for(int i=0;i<M;++i) for(int j=0;j<N;++j) printf("%d%c",opt[i][j],j+1==N?'\n':' '); } }
二.POJ 3684
const double g=10.0; int N,H,R,T; double y[MXN]; double calc(int T){ if(T<0) return H; double t=sqrt(2*H/g); int k=(int)(T/t); if(k%2==0){ double d=T-k*t; return H-g*d*d/2; }else{ double d=k*t+t-T; return H-g*d*d/2; } } void Fun(){ for(int i=0;i<N;++i) y[i]=calc(T-i); sort(y,y+N); for(int i=0;i<N;++i) printf("%.2f%c",y[i]+2*R*i/100.0,i+1==N?'\n':' '); }
三.POJ 2785
void Fun(){ for(int i=0;i<n;++i) for(int j=0;j<n;++j) CD[i*n+j]=C[i]+D[j]; sort(CD,CD+n*n); LL res=0; for(int i=0;i<n;++i) for(int j=0;j<n;++j){ int cd=-(A[i]+B[j]); res+=upper_bound(CD,CD+n*n,cd)-lower_bound(CD,CD+n*n,cd); } printf("%lld\n",res); }
相关文章推荐
- acm常用技巧二 POJ 3061 POJ 3320 POJ 3276 尺取法
- acm常用技巧一 二分 poj 1064 poj 2456
- 《挑战程序设计竞赛》3.2.2 常用技巧-反转 POJ3276 3279 3185 1222
- ACM编程技巧--常用字符操作函数
- java在acm中常用基础技巧方法
- acm常用技巧四 超大背包问题
- ACM的常用算法(西交POJ)
- POJ 3276 Face The Right Way (常用技巧-尺取法)
- ACM常用处理技巧
- ACM杂记(技巧/注意事项/常用函数)
- poj3279-Fliptile 技巧1 开灯问题
- ACM常用技巧之尺取法--POJ3061/3320/2739/2100
- POJ 3276 Face The Right Way 反转问题 常用技巧
- ACM常用解题技巧方法
- ACM常用的解题技巧:尺取法
- POJ3276—Face The Right Way 【常用技巧—反转(开关问题)】
- ACM常用的解题技巧:尺取法
- 常用技巧精选.反转(开关问题) poj3276 3279 3185 1244
- POJ 1002求487-3279解题报告——【PKU ACM】
- [ACM] poj 2096 Collecting Bugs (概率DP,期望)