zoukankan      html  css  js  c++  java
  • uva 12108 Extraordinarily Tired Students (UVA

    算法完全转载。。。原博客(https://blog.csdn.net/u014800748/article/details/38407087)

    题目简单叙述

    题目就是一堆学生他们有清醒的时候和昏迷的时候,并且这些都是成为了一个周期,他们还必须当其他昏迷的人大于等于清醒的人的时候才会睡觉要不就再来一个清醒的周期,最初会输入此时存在于周期的哪一个位置。

    做法(完全按照原博客)

    首先我们寻找一个较大的数我原本寻找的是1e6,最后又发现5e3也行,罚时瞬间从几十ms降到了0.这个数是用来计算总共要模拟的时间。然后每次都是判断当前状态的c[i]是不是已经在清醒阶段,如果是那么清醒人数加1,然后再判断c[i]是不是已经在总周期末尾或者c[i]在清醒周期末尾外加判断人数这里用了 【清醒的人数>=总人数-清醒的人数】?这样的表达来表示是不是清醒的人数多,实在是太厉害了。

    我的代码(算法完全借鉴别人我现在18/10/4 11:53 vj这个题fastest第一)

    #include <iostream>
    using namespace std;
    int a[20],b[20],c[20];
    main()
    {
    	int w=0;
    	int n;
    	while(cin>>n&&n)
    	{
    		for(int i=0;i<n;i++)
    		cin>>a[i]>>b[i]>>c[i];
    		int an;
    		for(int i=1;i<=5e3;i++)
    		{
    			int q=0;
    			for(int i=0;i<n;i++)
    			if(c[i]<=a[i])
    			q++;
    			if(q==n)
    			{
    				an=i;break;
    			}
    			for(int i=0;i<n;i++)
    			{
    				if(c[i]==a[i]+b[i]||c[i]==a[i]&&q>=n-q)
    				c[i]=0;
    				c[i]++;
    			}
    			if(i==5e3)
    			an=-1;
    		}printf("Case %d: %d
    ",++w,an);		
    	} 
    }
    
  • 相关阅读:
    自考新教材-p282
    p281
    自考新教材-p279_2
    用jmap分析java程序
    用jstack工具分析java程序
    java应用maven插件动态生成webservice代码
    Java对信号的处理
    【OracleDB】 01 概述和基本操作
    【Oracle】Windows-19C 下载安装
    【Hibernate】06 查询API
  • 原文地址:https://www.cnblogs.com/baccano-acmer/p/9741904.html
Copyright © 2011-2022 走看看