标签: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