其他分享
首页 > 其他分享> > P3984 高兴的津津

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 }

标签:map,津津,P3984,scanf,天数,int,ans,include,高兴
来源: https://www.cnblogs.com/ZhangRunqi/p/11291340.html