算法完全转载...原博客(https://blog.csdn.net/u014800748/article/details/38407087) 题目简单叙述 题目就是一堆学生他们有清醒的时候和昏迷的时候,并且这些都是成为了一个周期,他们还必须当其他昏迷的人大于等于清醒的人的时候才会睡觉要不就再来一个清醒的周期,最初会输入此时存在于周期的哪一个位置. 做法(完全按照原博客) 首先我们寻找一个较大的数我原本寻找的是1e6,最后又发现5e3也行,罚时瞬间从几十ms降到了0.这个数是用来计算总共要模拟的…
When a student is too tired, he can't help sleeping in class, even if his favorite teacher is right here in front of him. Imagine you have a class of extraordinarily tired students, how long do you have to wait, before all the students are listening…
不知道叫什么,好像是模拟的方法,看懂了题就好办(英语硬伤←_←) 题意大概是当一个同学想睡觉的时候判断周围睡觉的人数,不睡的人数大于等于睡觉的话就死撑着,否则就睡觉. 一开始没有什么思路,就直接用了个结构体,主要是把每个人醒着与睡着合在一个字符串中,中途出了点事过几天再来把上次的错误改了后,ac是ac了,但是2141的代码量还是吓到了O__O "- 虽说不推荐看,但还是留在这当做纪念吧http://paste.ubuntu.com/23809285/ 后来觉得没必要用结构体,就直接用数组,写完后…
思路: ①用结构体stu,属性有清醒时间,睡眠时间,开始处于的时间,状态(醒着还是睡着), 还有计数器. ②二维数组存表格. ③在确定接下来要进入的状态之后,就一次把表格里持续状态的数据都修改掉,比如: 第一个学生的数据是2 3 1,那么开始的时候他要进入2t的清醒期,此时就把data[0][0]和data[0][1]修改为0(代表清醒), 再比如如果确定了接下来进入睡眠,长度为5,就把未来5个数据都修改掉. ④判断第i个时间段是否能进入睡眠要查第i-1的时间段的睡眠和清醒的人数.⑤设定2000…
书上具体所有题目:http://pan.baidu.com/s/1hssH0KO 代码:(Accepted,0 ms) //UVa12108 - Extraordinarily Tired Students #include<iostream> struct how_cute_my_sleepy_boys_are { int a,//awaken period : a>=1; b,//sleeping period : b<=5; s,//state : 0醒着,1睡觉; t;//…
[链接] 我是链接,点我呀:) [题意] [题解] 一个单位时间.一个单位时间地模拟就好. 然后对于每个人. 记录它所处的周期下标idx 每个单位时间都会让每个人的idx++ 注意从醒着到睡着的分界线的处理就好. 可以多循环几次..超过上限认为无解 (其他题解也提供了一种方法,就是如果状态和初始的情况相同的话.就无解了即形成了一个环. (可能如果无解一定会形成环? [代码] #include <bits/stdc++.h> #define rep1(i,a,b) for (int i = a;…
UVA 11636 Hello World 二的幂答案就是二进制长度减1,不是二的幂答案就是是二进制长度. #include<cstdio> int main() { ; ){ ; ) r++; printf("Case %d: %d\n",++kas,r); } ; } LA 3602 DNA Consensus String 贪心构造,每一位上选出现次数最多的. #include<bits/stdc++.h> using namespace std; ,ma…
最近在跟着算法竞赛入门经典刷题,发现Uva网站打开超级慢,进个主页面都需要好几秒.后来发现可以通过vjudge网站刷Uva的题目,很是方便,在这mark一下,顺便做一下推荐. vjudge网址:https://vjudge.net,点击后会进入vjudge网站主页,如下图: 可以发现vjudge支持包括POJ.Uva.ZOJ等等一系列OJ网站的题目评测.第一次通过该网站刷题需要先注册一个账号,点击右上角Register按钮,会跳出注册页面: 只需填写好名字.密码.Email.验证码即可注册成功.…
dfs练习题,我素数打表的时候j=i了,一直没发现实际上是j=i*i,以后可记住了.还有最后一行不能有空格...昏迷了半天 我的代码(紫书上的算法) #include <bits/stdc++.h> using namespace std; int bk[110]; int num[110]; int vis[110]; int n; void db() { for(int i=2;i*i<=100;i++) if(!bk[i]) for(int j=i*i;j<=100;j+=i…
一道比较难想的模拟题,用了队列等东西,发现还是挺难做的,索性直接看了刘汝佳的代码,发现还是刘汝佳厉害! 代码本身难度并不是很大,主要还是p=(p+n+d-1)%n+1;这一句有些难度,实际上经过自己的手动计算发现这一句真的是相当的正确,虽然无法准确的说明. 剩下的就是格式问题这个题很特别的只能用%3d的格式,我起初还不理解10前面为什么只有一个空格,还以为是题目打错了,没想到这就是要你%3d的意思. 我自己敲一遍的代码 #include <bits/stdc++.h> using namesp…