博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
贪心+模拟 Codeforces Round #288 (Div. 2) C. Anya and Ghosts
阅读量:5013 次
发布时间:2019-06-12

本文共 1357 字,大约阅读时间需要 4 分钟。

 

1 /* 2     贪心 + 模拟:首先,如果蜡烛的燃烧时间小于最少需要点燃的蜡烛数一定是-1(蜡烛是1秒点一支), 3             num[g[i]]记录每个鬼访问时已点燃的蜡烛数,若不够,tmp为还需要的蜡烛数, 4             然后接下来的t秒需要的蜡烛都燃烧着,超过t秒,每减少一秒灭一支蜡烛,好!!! 5     详细解释:http://blog.csdn.net/kalilili/article/details/43412385 6 */ 7 #include 
8 #include
9 #include
10 #include
11 #include
12 using namespace std;13 14 const int MAXN = 1e3 + 10;15 const int MAXG = 300 + 10;16 const int INF = 0x3f3f3f3f;17 int g[MAXG];18 int num[MAXN];19 20 int main(void) //Codeforces Round #288 (Div. 2) C. Anya and Ghosts21 {22 #ifndef ONLINE_JUDGE23 freopen ("C.in", "r", stdin);24 #endif25 26 int m, t, r;27 28 scanf ("%d%d%d", &m, &t, &r);29 for (int i=1; i<=m; ++i)30 scanf ("%d", &g[i]);31 32 if (t < r)33 {34 puts ("-1"); return 0;35 }36 int ans = 0;37 for (int i=1; i<=m; ++i)38 {39 if (num[g[i]] < r)40 {41 int tmp = r - num[g[i]];42 ans += tmp;43 for (int j=g[i]+1; j<=g[i]-tmp+t; ++j) num[j] += tmp;44 for (int j=g[i]-tmp+t+1; j<=g[i]+t-1; ++j) num[j] += (--tmp);45 }46 }47 48 printf ("%d\n", ans);49 50 return 0;51 }

 

转载于:https://www.cnblogs.com/Running-Time/p/4366671.html

你可能感兴趣的文章
每日英语:15 places to find inspiration
查看>>
学习方法--提问
查看>>
【转】每天一个linux命令(3):pwd命令
查看>>
merge-two-sorted-lists
查看>>
MySQL(3)
查看>>
poj1061——扩展gcd水题
查看>>
UVa400.Unix ls
查看>>
POJ 2299 Ultra-QuickSort 归并排序、二叉排序树,求逆序数
查看>>
Educational Codeforces Round 60 (Rated for Div. 2) C. Magic Ship
查看>>
Windows 2008 R2系统开机时如何不让Windows进行磁盘检测?
查看>>
WP7应用开发笔记(18) 本地化与多语言
查看>>
解决 .so文件64与32不兼容问题
查看>>
归并排序法
查看>>
【剑指offer】面试题26:复杂链表的复制
查看>>
spark开发生成EXE
查看>>
Vue 全家桶介绍
查看>>
WPF Bitmap转Imagesource
查看>>
Java compiler level does not match the version of the installed Java project facet.解决方法
查看>>
笔记_小结
查看>>
Linux lsof命令 umount U盘
查看>>