zoukankan      html  css  js  c++  java
  • poj 1323

    贪心基础题。至少能赢多少次。换句话说,就是自己每次出一张牌,其他人尽量让你输,其他人足够聪明,当你出一张牌时,为了让你输,会出一张比你大的,除非其他人没有,那么这轮你就赢啦,为了不造成浪费,最优的方法肯定是出一张比你出的牌大的牌中最小的牌(贪心的思想),可以证明这样的贪心结构是正确的

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    using namespace std;
    const int maxn=1001;
    int vis[maxn],a[maxn];
    int n,m;
    int main()
    {
    	int t=0;
    	while(cin>>n>>m)
    	{
    		if(m==0&&n==0) break;
    		t++;
    		memset(vis,0,sizeof(vis));
    		for(int i=1;i<=m;i++)
    		{
    			cin>>a[i];
    			vis[a[i]]=1;
    		}
    		sort(a+1,a+m+1);
    		bool flag;
    		int j=1;
    		int amount=0;
    		for(int i=1;i<=m;i++)
    		{
    			flag=false;
    			for(;j<=n*m;j++)
    			{
    				if(!vis[j]&&j>a[i])
    				{
    					flag=true;
    					j++;
    					break;
    				}
    			}
    			if(flag) amount++;
    		}
    		printf("Case %d: %d\n",t,m-amount);
    	}
    	return 0;
    }


  • 相关阅读:
    小错误
    创建表空间
    mysql
    myeclipse
    linux命令小结
    jquery
    java基础
    【学习笔记】【多项式】多项式插值相关_个人学习用
    SHUoj 神无月排位赛
    SHUoj 字符串进制转换
  • 原文地址:https://www.cnblogs.com/lj030/p/3002289.html
Copyright © 2011-2022 走看看