zoukankan      html  css  js  c++  java
  • codeforces 731B Coupons and Discounts

    /*
    一开始并没有想清楚这题该怎么解出,走了许多弯路
    我一开始以为此题的关键在于数组中的偶数元素,如果偶元素的后面还是偶元素,前一个偶元素就能当作0来处理;
    后来又想,是不是前后两个数字,分别减去两者中的最小值
    然后想来许多许多的角度
    最后发现...还是我自己想得太多了,这题其实没那么麻烦,无非是,遇到偶数取余,遇到零判断下一个,若遇到奇数,先判断后面还有没有元素,没有则输出"NO"并退出循环,否则判断其后面是不是0.是0则输出"NO"并退出循环,否则当前判断的数组元素置0(之所以为0.是因为自减以后,肯定变成偶数了,偶数有一种优惠可用,那天的绝对可以买到).而它后面的元素自减...如此循环往复,直到遍历数组中所有的元素
    */



    #include <bits/stdc++.h>
    const int N = 200005;
    int num[N];
    using namespace std;
    int main()
    {
    	int n;
    	while (cin >> n)
    	{
    		bool jud = true;
    		for (int i = 0; i < n; i++)
    		cin >> num[i];
    		
    		for (int i = 0; i < n; i++)
    		{
    			if (num[i] >= 2)
    			num[i] %= 2;
    			
    			if (num[i] == 0)
    			continue;
    			
    			if (i == n - 1)
    			{
    				jud = false; break;
    			}
    			else
    			{
    				if (num[i + 1])
    				{
    					num[i + 1]--;
    					num[i] = 0;
    				}
    				else
    				{
    					jud = false; break;
    				}
    			}
    		}
    		if (jud) cout << "YES" << endl;
    		else cout << "NO" << endl;
    	}
    	return 0;
    }


  • 相关阅读:
    运算符
    数据类型
    试题汇总
    文件读写
    Python操作
    字符串常用函数 void
    向量叉乘求任意多边形面积,凹凸均可 void
    约瑟夫问题各种求解办法 void
    大数类相关计算(c语言版) void
    求解一元多次方程(迭代法) void
  • 原文地址:https://www.cnblogs.com/mofushaohua/p/7789486.html
Copyright © 2011-2022 走看看