[ An Ac a Day ^_^ ] CodeForces 677B Vanya and Food Processor 模拟

题意:

你有一个榨汁机 还有n个土豆

榨汁机可以容纳h高的土豆 每秒可以榨k高的东西

问按顺序榨完土豆要多久

思路:

直接模拟

一开始以为是最短时间排了个序 后来发现多余了……

 1 #include<stdio.h>
 2 #include<iostream>
 3 #include<algorithm>
 4 #include<math.h>
 5 #include<string.h>
 6 #include<string>
 7 #include<map>
 8 #include<set>
 9 #include<vector>
10 #include<queue>
11 #define M(a,b) memset(a,b,sizeof(a))
12 using namespace std;
13 typedef long long ll;
14 int potato[100005];
15 int main(){
16     int n,h,k;
17     scanf("%d%d%d",&n,&h,&k);
18     for(int i=0;i<n;i++)
19         scanf("%d",&potato[i]);
20     ll ans=0,high=0;
21     for(int i=0;i<n;i++){
22         if(high+potato[i]<=h) high+=potato[i]; //能放下就放上去
23         else{  //放不下就打完了再放
24             high=potato[i];
25             ans++;
26         }
27         ans+=high/k;
28         high%=k;
29     }
30     if(high) ans++; //最后剩一点还要处理一下
31     printf("%I64d\n",ans);
32     return 0;
33 }
34 /*
35
36 5 6 3
37 5 4 3 2 1
38
39 5 6 3
40 5 5 5 5 5
41
42 5 6 3
43 1 2 1 1 1
44
45 */
时间: 2024-11-03 22:32:08

[ An Ac a Day ^_^ ] CodeForces 677B Vanya and Food Processor 模拟的相关文章

CodeForce 677B Vanya and Food Processor

 Vanya and Food Processor Vanya smashes potato in a vertical food processor. At each moment of time the height of the potato in the processor doesn't exceed h and the processor smashes k centimeters of potato each second. If there are less than k cen

Codeforces 552E Vanya and Brackets(贪心 + 表达式计算)

题目链接 Vanya and Brackets 题目大意是给出一个只由1-9的数.乘号和加号组成的表达式,若要在这个表达式中加上一对括号,求加上括号的表达式的最大值. 我们发现,左括号的位置肯定是最左端或者某个乘号右边,右括号的位置肯定是最右段或者某个乘号左边. 而乘号最多只有15个,那么暴力枚举就可以了. #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (int i(a); i <= (b);

codeforces 492E. Vanya and Field(exgcd求逆元)

题目链接:codeforces 492e vanya and field 留个扩展gcd求逆元的板子. 设i,j为每颗苹果树的位置,因为gcd(n,dx) = 1,gcd(n,dy) = 1,所以当走了n步后,x从0~n-1,y从0~n-1都访问过,但x,y不相同. 所以,x肯定要经过0点,所以我只需要求y点就可以了. i,j为每颗苹果树的位置,设在经过了a步后,i到达了0,j到达了M. 则有 1----------------------(i + b * dx) % n = 0 2------

codeforces 492D Vanya and Computer Game(额。。。数学题?水题吧)

传送门:点击打开链接 题目大意: 有2个人在打怪,攻击频率分别是x,y.小怪有num点血.问死的时候是谁打死的.如果同时出手 输出Both. 解题思路: 在一秒内考虑这个问题(一秒是循环节). 假设攻击时刻的分母x*y.那么容易得到每个人的攻击时刻(在一秒内). 然后如果有一个时刻有重复.那么肯定是2个人同时在打. 排个序就好了. 这是D题么...我觉得最多是C题难度,吐槽一下... #include <cstdio> #include <vector> #include <

CodeForces 552C Vanya and Scales

Vanya and Scales Time Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64u Submit Status Practice CodeForces 552C Description Vanya has a scales for weighing loads and weights of masses w0, w1, w2, ..., w100 grams where w is some

codeforces C. Vanya and Scales

C. Vanya and Scales Vanya has a scales for weighing loads and weights of masses w0, w1, w2, ..., w100 grams where w is some integer not less than 2(exactly one weight of each nominal value). Vanya wonders whether he can weight an item with mass m usi

Codeforces 492E Vanya and Field(拓展欧几里得)

题目链接:Codeforces 492E Vanya and Field 通过拓展欧几里得算法求出每个位置在移动过程中,在x为0时,y的位置.统计相应y坐标最多的即为答案. #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn = 1e6 + 5; const int maxm = 1e5 + 5; typedef long long l

CodeForces - 552E Vanya and Brackets

Vanya and Brackets Time Limit: 1000MS   Memory Limit: 262144KB   64bit IO Format: %I64d & %I64u Description Vanya is doing his maths homework. He has an expression of form , where x1, x2, ..., xn are digits from 1 to 9, and sign represents either a p

Codeforces 492D Vanya and Computer Game 循环节找规律

题目链接:点击打开链接 题意: 给定n只怪物的血量,x', y 第一个人每秒钟攻击x次,第二个人每秒钟攻击y次 每次攻击给所有存活的怪物造成一点伤害. 问每只怪物最后一击是谁打死的 思路:xy的最小公倍数内有个循环节,先跑出这个循环节(同时攻击时造成2点伤害,就在循环节里加2次both) 然后对于每只怪只要关心在循环节里坐落在哪个攻击点就好了 #include<bits/stdc++.h> using namespace std; const int maxn=2000010; int v[m