hdu 3682 10 杭州 现场 C - To Be an Dream Architect 简单容斥 难度:1
Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u
System Crawler (2014-11-09)
Description
Cobb uses a simple 3D imagination game to test whether a candidate has the potential to be an dream architect. He lets the candidate imagine a cube consisting of n×n×n blocks in a 3D coordinate system as Figure 1. The block at bottom left front corner is marked (1, 1, 1) and the diagonally opposite block is marked (n, n, n). Then he tells the candidate that the blocks on a certain line are eliminated. The line is always parallel to an axis. After m such block eliminations, the candidate is asked to tell how many blocks are eliminated. Note that one block can only be eliminated once even if it is on multiple lines.
Here is a sample graph according to the first test case in the sample input: 
Input
In each test case, the first line contains two integers n and m( 1 <= n <= 1000, 0 <= m <= 1000).,meaning that the cube is n x n x n and there are m eliminations.
Each of the following m lines represents an elimination in the following format:
axis_1=a, axis_2=b
where axis_i (i=1, 2) is ‘X’ or ‘Y’, or ‘Z’ and axis_1 is not equal to axis_2. a and b are 32-bit signed integers.
Output
Sample Input
3 2
Y=1,Z=3
X=3,Y=1
10 2
X=3,Y=3
Y=3,Z=3
Sample Output
19
#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 简单容斥 难度:1的更多相关文章
- hdu 3682 10 杭州 现场 C To Be an Dream Architect 容斥 难度:0
C - To Be an Dream Architect Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d &a ...
- hdu 3685 10 杭州 现场 F - Rotational Painting 重心 计算几何 难度:1
F - Rotational Painting Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & % ...
- hdu 3687 10 杭州 现场 H - National Day Parade 水题 难度:0
H - National Day Parade Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & % ...
- hdu 3695 10 福州 现场 F - Computer Virus on Planet Pandora 暴力 ac自动机 难度:1
F - Computer Virus on Planet Pandora Time Limit:2000MS Memory Limit:128000KB 64bit IO Format ...
- hdu 3694 10 福州 现场 E - Fermat Point in Quadrangle 费马点 计算几何 难度:1
In geometry the Fermat point of a triangle, also called Torricelli point, is a point such that the t ...
- hdu 4770 13 杭州 现场 A - Lights Against Dudely 暴力 bfs 状态压缩DP 难度:1
Description Harry: "But Hagrid. How am I going to pay for all of this? I haven't any money.&quo ...
- HDU 1796How many integers can you find(简单容斥定理)
How many integers can you find Time Limit: 12000/5000 MS (Java/Others) Memory Limit: 65536/32768 ...
- hdu 3697 10 福州 现场 H - Selecting courses 贪心 难度:0
Description A new Semester is coming and students are troubling for selecting courses. Students ...
- hdu 3699 10 福州 现场 J - A hard Aoshu Problem 暴力 难度:0
Description Math Olympiad is called “Aoshu” in China. Aoshu is very popular in elementary schools. N ...
随机推荐
- ASIOTutorial
ASIOTutorialTutorial 1: Simple wgetTutorial 2: Synchronous HTTP ServerTutorial 3: Asynchrnous wgetTu ...
- PHP对象在内存中的分配
对像在PHP 里面和整型.浮点型一样,也是一种数据类,都是存储不同类型数据用的, 在运行的时候都要加载到内存中去用,那么对象在内存里面是怎么体现的呢?内存从逻辑上 说大体上是分为4 段,栈空间段.堆空 ...
- Python开发【模块】:Urllib(一)
Urllib模块 1.模块说明: Urllib库是Python中的一个功能强大.用于操作的URL,并在做爬虫的时候经常要用到的库.在Python2.X中,分Urllib库和Urllib库,Python ...
- Python开发【Django】:ModelForm操作
ModelForm 内容回顾: Model - 数据库操作 - 验证 class A(MOdel): user = email = pwd = Form class LoginForm(Form): ...
- python修改镜像源
pip升级:python -m pip install --upgrade pip https://www.cnblogs.com/andy9468/p/10319442.html 1.在命令中临时修 ...
- eclipse怎么导出可执行jar包
在eclpse中找到你要导出的java程序 选中它 单击文件 -->export 在弹出的export对话框中找到 jar File 单击选中-->next 按图示顺序依次 选好你的jav ...
- Java Thread 如何处理未捕获的异常?
Java Thread是不允许异常抛出到本线程之外的,Runnable接口的public abstract void run()是不允许throws Exception的,这在编译时就通不过. 线程异 ...
- 4.3 Routing -- Generated Objects
就像在routing guide中介绍的那样,不管什么时候你在路由器中定义一个新路径,Ember.js就会尝试寻找一个对应的route,controller,template,它们的命名都是根据命名约 ...
- Action<>和Func<> 区别
其实他们两个都是委托[代理]的简写形式. 一.[action<>]指定那些只有输入参数,没有返回值的委托 Delegate的代码: public delegate void myDeleg ...
- python连接MySQL数据库问题
Python 数据库图解流程 Connection.Cursor比喻 Connection()的参数列表 host,连接的数据库服务器主机名,默认为本地主机(localhost).user,连接数据库 ...