NYOJ 318 Special particles

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=318

题目大意:一个正方体有8个顶点,正方体的顶点上面分别有粒子(可以为0,就是没有)。接下来进行的变换就是在正方体的一条边上的两个顶点可以同时加减任意一个数,但必须保证加减的那个数要是同一个数,假如能够变换成每个顶点上的粒子都为0,则输出YES,否则输出NO。

思路:如果想明白了,这题算是一道水题了。用逆推的思想,假如能够经过一系列变化能够使每个顶点上的粒子都为0,那么在最后一步面临的情况一定的一条边上的两个顶点的粒子数目相等(无论最后两个顶点的粒子是否为0)。再逆推第二步,第三步。。。。。,最终推回最开始的状态,也就是题目给出的数据。如果能推出,则表示能够变换成每个顶点上的粒子都为0。代码就简单了。

代码:

#include<stdio.h>
int main()
{
	int n,a,b,c,d,e,f,g,h;
	scanf("%d",&n);
	while(n--)
	{
		scanf("%d %d %d %d %d %d %d %d",&a,&b,&c,&d,&e,&f,&g,&h);
		b=b-a;
		c=c-b;
		d=d-c;
		f=f-e;
		g=g-f;
		h=h-g;
		if(d==h)
		{
			printf("YES\n");
		}
		else
		{
			printf("NO\n");
		}
	}
	return 0;
}        


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值