Codeforces Round #325 (Div. 2) C. Gennady the Dentist 暴力
C. Gennady the Dentist
Time Limit: 1 Sec
Memory Limit: 256 MB
题目连接
http://codeforces.com/contest/586/problem/C
Description
Gennady is one of the best child dentists in Berland. Today n children got an appointment with him, they lined up in front of his office.
All children love to cry loudly at the reception at the dentist. We enumerate the children with integers from 1 to n in the order they go in the line. Every child is associated with the value of his cofidence pi. The children take turns one after another to come into the office; each time the child that is the first in the line goes to the doctor.
While Gennady treats the teeth of the i-th child, the child is crying with the volume of vi. At that the confidence of the first child in the line is reduced by the amount of vi, the second one — by value vi - 1, and so on. The children in the queue after the vi-th child almost do not hear the crying, so their confidence remains unchanged.
If at any point in time the confidence of the j-th child is less than zero, he begins to cry with the volume of dj and leaves the line, running towards the exit, without going to the doctor's office. At this the confidence of all the children after the j-th one in the line is reduced by the amount of dj.
All these events occur immediately one after the other in some order. Some cries may lead to other cries, causing a chain reaction. Once in the hallway it is quiet, the child, who is first in the line, goes into the doctor's office.
Help Gennady the Dentist to determine the numbers of kids, whose teeth he will cure. Print their numbers in the chronological order.
Input
The first line of the input contains a positive integer n (1 ≤ n ≤ 4000) — the number of kids in the line.
Next n lines contain three integers each vi, di, pi (1 ≤ vi, di, pi ≤ 106) — the volume of the cry in the doctor's office, the volume of the cry in the hall and the confidence of the i-th child.
i,Ci,即此题的初始分值、每分钟减少的分值、dxy做这道题需要花费的时间。
Output
In the first line print number k — the number of children whose teeth Gennady will cure.
In the second line print k integers — the numbers of the children who will make it to the end of the line in the increasing order.
Sample Input
5
4 2 2
4 1 2
5 2 4
3 3 5
5 1 2
Sample Output
2
1 3
HINT
题意
一堆小孩要去看牙医,小孩进入牙医之后,就会发出叫声,使得接下来的v[i]个孩子的信心分别下降v[i],v[i]-1......1这么多
如果小孩被吓跑了,他们又会叫,使得接下来的孩子发出d[i]的叫声
然后问你一共有多少人能够看病,并且是哪些人
题解:
数据范围只有4000,那就n^2暴力就好了
有两个坑点:
1.爆int
2.得v[i]减完之后,大家再一起叫d[i]的,不是边v[i]边d[i]
代码:
#include<stdio.h>
#include<iostream>
#include<math.h>
#include<iostream>
#include<cstring>
#include<vector>
using namespace std; long long v[],d[],p[];
long long ans[];
long long flag[];
int n;
int main()
{
memset(flag,,sizeof(flag));
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%lld%lld%lld",&v[i],&d[i],&p[i]);
int tot = ;
for(int i=;i<=n;i++)
{
if(p[i]<)continue;
ans[tot++]=i;
long long sum=;
long long time = v[i];
for(int j=i+;j<=n;j++)
{
flag[j]=;
if(p[j]>=)
{
flag[j]=;
if(time>)
p[j]-=time;
time--;
}
}
for(int j=i+;j<=n;j++)
{
if(p[j]>=)
p[j]-=sum;
if(p[j]<&&flag[j])
sum+=d[j];
}
}
printf("%d\n",tot);
for(int i=;i<tot;i++)
printf("%lld ",ans[i]);
printf("\n");
}
Codeforces Round #325 (Div. 2) C. Gennady the Dentist 暴力的更多相关文章
- Codeforces Round #325 (Div. 2) A. Alena's Schedule 暴力枚举 字符串
A. Alena's Schedule time limit per test 1 second memory limit per test 256 megabytes input standard ...
- Codeforces Round #297 (Div. 2)D. Arthur and Walls 暴力搜索
Codeforces Round #297 (Div. 2)D. Arthur and Walls Time Limit: 2 Sec Memory Limit: 512 MBSubmit: xxx ...
- Codeforces Round #325 (Div. 2)
水 A - Alena's Schedule /************************************************ * Author :Running_Time * Cr ...
- Codeforces Round #325 (Div. 2) F. Lizard Era: Beginning meet in the mid
F. Lizard Era: Beginning Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/5 ...
- Codeforces Round #325 (Div. 2) D. Phillip and Trains BFS
D. Phillip and Trains Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/586/ ...
- Codeforces Round #325 (Div. 2) A. Alena's Schedule 水题
A. Alena's Schedule Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/586/pr ...
- Codeforces Round #325 (Div. 2) B. Laurenty and Shop 前缀和
B. Laurenty and Shop Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/586/p ...
- Codeforces Round #325 (Div. 2) Phillip and Trains dp
原题连接:http://codeforces.com/contest/586/problem/D 题意: 就大家都玩过地铁奔跑这个游戏(我没玩过),然后给你个当前的地铁的状况,让你判断人是否能够出去. ...
- Codeforces Round #325 (Div. 2) Laurenty and Shop 模拟
原题链接:http://codeforces.com/contest/586/problem/B 题意: 大概就是给你一个两行的路,让你寻找一个来回的最短路,并且不能走重复的路. 题解: 就枚举上下选 ...
随机推荐
- NPOI的源代码编译
打开版本库下的examples文件夹 然后打开对应的解决方案文件,尝试编译程序.发现提示缺少了dll 琢磨了半天,找到四个项目文件,打开之后进行编译.最后会生成dll到solution文件夹下的Lib ...
- windows10 无法搜索本地应用的解决办法
博客好久没有更新了,今天拔下草,不多说,直接说如何解决吧.目前看到的比较靠谱的解决方案有4种,应该能解决绝大部分人的问题. 方法1和方法2 百度经验里面说的很清楚了,这里不再多说,大家可以直接参考:链 ...
- poj2436,poj3659,poj2430
这两题都体现了dp的核心:状态 dp做多就发现,状态一设计出来,后面的什么都迎刃而解了(当然需要优化的还要动动脑筋): 先说比较简单的: poj2436 由题得知病毒种数<=15很小,于是我们就 ...
- Java框架的思考
目前的JAVA 企业级开发框架,我们常用的大致包括IOC AOP MVC ORM框架 1. IOC spring是一个非常棒的ico容器,其思想非常简单,用一个集合对象如MAP 来缓存对象(对象都是单 ...
- Hessian介绍
Hessian是什么 Hessian类似Web Service,是一种高效简洁的远程调用框架. Hessian的主页:http://hessian.caucho.com/ 有关网上的对Hess ...
- Windbg源码调试
Windbg提供比VS2008丰富很多的调试命令,尤其是调试多线程程序. 今天试着怎么使用源代码方式调试.为了说明调试命令,<C++标准库>一书里的例子做示范. // testcast.c ...
- STM32使用以下规则对过滤器编号:
STM32使用以下规则对过滤器编号:(1) FIFO_0和 FIFO_1的过滤器分别独立编号,均从0开始按顺序编号.(2) 所有关联同一个 FIFO 的过滤器,不管有没有被激活,均统一进行编号.(3) ...
- input文字方框中,字体颜色的变化 要求默认的字体颜色是灰色,当要输入字时,字体是正常的黑色
1 <input type=text name='address' size=60 maxlength=60 style="color:gray" value="( ...
- NOIP2014 生活大爆炸版石头剪刀布
生活大爆炸版石头剪刀布 (rps.cpp/c/pas) [问题描述] 石头剪刀布是常见的猜拳游戏:石头胜剪刀,剪刀胜布,布胜石头.如果两个人出拳一样,则不分胜负.在<生活大爆炸>第二季第8 ...
- HDU 1029 Ignatius and the Princess IV DP
kuangbin 专题 这题,有很多种解法. 第一种: 直接比较每个数出现次数. #include<iostream> #include<string> #include< ...