zoukankan      html  css  js  c++  java
  • Topcoder SRMCards ——贪心

    选择一个数x会删去x+1和x-1,问可以最多选多少次。

    显然,对于一段连续的数列,贪心的从左向右选取是最优的。

    然后就可以贪心的统计答案了。

    #include <map>
    #include <ctime>
    #include <cmath>
    #include <queue>
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    #define F(i,j,k) for (int i=j;i<=k;++i)
    #define D(i,j,k) for (int i=j;i>=k;--i)
    
    class SRMCards{
    	public:
    	int maxTurns(vector <int> cards)
    	{
    		sort(cards.begin(),cards.end());
    		int cnt=1,ans=0;
    		for (int i=1;i<cards.size();++i)
    		{
    			if (cards[i]==cards[i-1]+1) cnt++;
    			else
    			{
    				ans+=(cnt+1)/2;
    				cnt=1;
    			}
    		}
    		ans+=(cnt+1)/2;
    		return ans;
    	}
    };
    

      

  • 相关阅读:
    P3811乘法逆元
    P4549裴蜀定理
    备用代码区
    其他板子整理
    DP
    图论板子整理
    约数
    浅谈假学习假努力
    质数
    P1019 单词接龙
  • 原文地址:https://www.cnblogs.com/SfailSth/p/6775451.html
Copyright © 2011-2022 走看看