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 高兴的津津的主要内容,如果未能解决你的问题,请参考以下文章

2004不高兴的津津

P1085 不高兴的津津

noip普及组2004 不高兴的津津

b146: NOIP2004 1.不高兴的津津

Codevs 1092 不高兴的津津

1092 不高兴的津津