标签:des blog http io ar os sp for strong
Description
Input
Output
Sample Input
Sample Output
#include <cstdio> #include <cstring> using namespace std; int n,m; int a,b,c,d; bool xy[1001][1001],xz[1001][1001],yz[1001][1001]; int xylen[1001],yxlen[1001],yzlen[1001],zxlen[1001],zylen[1001],xzlen[1001]; char buff[100]; int xzheap[1001][2]; int read1(){ int ans=0; for(int i=2;i<=6;i++){ if(buff[i]>‘9‘||buff[i]<‘0‘)break; ans*=10; ans+=buff[i]-‘0‘; } return ans; } int read2(){ int ans=0; int i=6; while(buff[i]>‘9‘||buff[i]<‘0‘){i++;} for(;;i++){ if(buff[i]>‘9‘||buff[i]<‘0‘)break; ans*=10; ans+=buff[i]-‘0‘; } return ans; } void inset(char ch1,char ch2,int num1,int num2){ if(ch1==‘X‘){ if(ch2==‘Y‘){ if(!xy[num1][num2]){ a++; xy[num1][num2]=true; xylen[num1]++; yxlen[num2]++; } } if(ch2==‘Z‘){ if(!xz[num1][num2]){ xzheap[b][0]=num1; xzheap[b++][1]=num2; xz[num1][num2]=true; xzlen[num1]++; zxlen[num2]++; } } } if(ch1==‘Y‘){ if(ch2==‘X‘){ if(!xy[num2][num1]){ a++; xy[num2][num1]=true; xylen[num2]++; yxlen[num1]++; } } if(ch2==‘Z‘){ if(!yz[num1][num2]){ c++; yz[num1][num2]=true; yzlen[num1]++; zylen[num2]++; } } } if(ch1==‘Z‘){ if(ch2==‘X‘){ if(!xz[num2][num1]){ xzheap[b][0]=num2; xzheap[b++][1]=num1; xz[num2][num1]=true; xzlen[num2]++; zxlen[num1]++; } } if(ch2==‘Y‘){ if(!yz[num2][num1]){ c++; yz[num2][num1]=true; yzlen[num2]++; zylen[num1]++; } } } } void cl2ear(){ a=b=c=d=0; memset(xy,0,sizeof(xy)); memset(yz,0,sizeof(yz)); memset(xz,0,sizeof(xz)); memset(xylen,0,sizeof(xylen)); memset(yxlen,0,sizeof(xylen)); memset(zylen,0,sizeof(xylen)); memset(yzlen,0,sizeof(xylen)); memset(xzlen,0,sizeof(xylen)); memset(zxlen,0,sizeof(xylen)); } int main(){ int T; scanf("%d",&T); while(T--){ scanf("%d%d",&n,&m); cl2ear(); for(int i=0;i<m;i++){ scanf("%s",buff); bool fl=false; char ch1,ch2;int num1=read1(),num2=read2(); for(int j=0;buff[j];j++){ if(buff[j]==‘X‘||buff[j]==‘Y‘||buff[j]==‘Z‘){ if(!fl){ ch1=buff[j]; fl=true; } else { ch2=buff[j]; break; } } } inset(ch1,ch2,num1,num2); } for(int i=0;i<b;i++){ for(int j=1;j<=n;j++){ if(xy[xzheap[i][0]][j]&&yz[j][xzheap[i][1]])d++; } } int ans=n*a+n*b+n*c+d; int a=0; for(int i=1;i<=n;i++){ a+=xylen[i]*xzlen[i]+yzlen[i]*yxlen[i]+zxlen[i]*zylen[i]; // a+=yxlen[i]*zxlen[i]+zylen[i]*xylen[i]+xzlen[i]*yzlen[i]; } ans-=a; printf("%d\n",ans); } return 0; }
hdu 3682 10 杭州 现场 C - To Be an Dream Architect 简单容斥
标签:des blog http io ar os sp for strong
原文地址:http://www.cnblogs.com/xuesu/p/4085693.html