P3984 高兴的津津
Posted zhangrunqi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P3984 高兴的津津相关的知识,希望对你有一定的参考价值。
P3984题库链接:https://www.luogu.org/problem/P3984
难度:普及-
算法标签:模拟
1.map模拟 O(n*t) 得分60
看过题后想到了利用map容器来记录高兴天的天号,并将所持续天数的map增加,最后高兴的天数即为map的元素个数
1 #include <cstdio> 2 #include <map> 3 using namespace std; 4 map<int, int> m; 5 int main() 6 7 int n, t; 8 scanf("%d%d", &n, &t); 9 for(int i = 0; i < n; ++i) 10 11 int k; 12 scanf("%d", &k); 13 for(int j = k; j <= k + t - 1; ++j) 14 ++m[j]; 15 16 printf("%d\n", m.size()); 17 return 0; 18
2.朴素模拟 O(n) 得分100
若第i次与第i-1次的间隔小于t,则开心的天数增加第i次与第i-1次的间隔,否则就增加t,最后一次一定能持续t天,所以累加持续的天数为ans+t
1 #include <cstdio> 2 using namespace std; 3 int s[200001]; 4 int main() 5 6 int n, t, ans = 0; 7 scanf("%d%d", &n, &t); 8 scanf("%d", &s[0]); 9 for(int i = 1; i < n; ++i) 10 11 scanf("%d", &s[i]); 12 if(s[i] - s[i - 1] < t) ans += s[i] - s[i - 1]; 13 else ans += t; 14 15 printf("%d\n", ans + t); 16 return 0; 17
以上是关于P3984 高兴的津津的主要内容,如果未能解决你的问题,请参考以下文章