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