zoukankan      html  css  js  c++  java
  • Codeforces812A Sagheer and Crossroads

    /*
    这题值得一说的是,之前一直没有看懂题目,一直不知道题目是什么意思,后来明白了:
    一二三四行,就是它标的号码1、2、3、4所在区域的状态
    每行有4个数字,4个数字若分别为1,分别表示此处有车左转、有车直行、有车右转、人行道有行人
    
    于是,剩下的就比较好想了:
    某块区域只要有人,那么此处只要有车,无论车左右转还是直行,必定和该处的人相撞
    某块区域只要有人,如果别的区域经过左转、直行或者右转,想要来到这个区域,必定发生事故
    
    利用取余可以简化代码
    
    */



    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
    	int a[4][4];
    	for (int i = 0; i < 4; i++)
    	for (int j = 0; j < 4; j++)
    	cin >> a[i][j];
    	
    	int jud = 0;
    	for (int i = 0; i < 4; i++)
    	{
    		if (a[i][3])
    		{
    			if (a[i][0] || a[i][1] || a[i][2])
    			{
    				jud = 1;break;
    			}
    			if (a[(i+1)%4][0] || a[(i+2)%4][1] || a[(i+3)%4][2])
    			{
    				jud = 1;break;
    			}
    		}
    	}
    	if (jud) cout << "YES" << endl;
    	else cout << "NO" << endl;
    	return 0;
    }


    /*
    法二:
    参考自代码:
    http://blog.csdn.net/hhh_go_/article/details/72844846
    这种思路也不能说多特别,但是反正我是没有想到...T^T
    以及,这种思路写起代码来,思路还是挺清晰的,反正也是比较容易就能看懂了
    当然,代码什么的,看懂一般都能看懂,自己写的时候就...可能又懵了
    08-24: 今天重看了一次这份代码,发现他的思路是真的好,用了数组以后,需要考虑的地方就少了许多,逻辑也变得十分清晰
    */
    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
    	int dir[5][5] = {{4,3,2}, {1,4,3}, {2,1,4}, {3,2,1}};//数组记录1234区域中的车,经过左转、直行、右转,分别会影响到哪些区域
    	int viss[5] = {0};
    	int vis[5] = {0};
    	int a, b;
    	
    	for (int i = 0; i < 4; i++)
    	{
    		for (int j = 0; j < 3; j++)//前三个是车,每辆车若不停下,将影响两个区域,人若不停,仅影响一个区域,分开讨论
    		{
    			cin >> a;
    			if (a)
    			{
    				viss[dir[i][j]] = 1;//这辆车在左右转或直行后,可能导致别的区域有车
    				viss[i+1] = 1;//车当前所在的区域有车
    			} 
    		}
    		cin >> b;
    		if (b)
    			 vis[i+1] = 1;//这块区域有行人
    	}
    	
    	int flag = 0;
    	for (int i = 1; i <= 4; i++)
    	{
    		if (vis[i] && viss[i])//某块区域同时有行人和车(无论是自己本身要开走的车,还是别的车经过左右转或直行,将该区域作为目的地),都会造成事故
    		{
    			flag = 1;
    			break;
    		}
    	}
    	if (flag) cout << "YES" << endl;
    	else cout << "NO" << endl;
    	return 0;
    }




  • 相关阅读:
    基于Antlr4编写DSL
    【整理】ANTLR应用案例 | 在路上
    【整理】ANTLR应用案例 | 在路上
    The ANTLR Parser Generator
    ANTLR4权威参考手册
    ANTLR Examples
    ANTLRWorks: The ANTLR GUI Development Environment
    http://www.cnblogs.com/vowei/archive/2012/08/24/2654287.html
    写一个编译器
    写一个编译器
  • 原文地址:https://www.cnblogs.com/mofushaohua/p/7789502.html
Copyright © 2011-2022 走看看