![](https://img-blog.csdnimg.cn/9676338f9da143b4afad631b2b5b25d7.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
每日一题之div1A
每天一道Div1A
辉小歌
九局下半转啊转,我把帽子反戴,还在期待逆转。
展开
-
C. Little Girl and Maximum Sum【差分 / 贪心】
贪心,思路很简单。肯定是公共次数最多的,放最大的值。以此类推。我们可以用差分来维护,快速的给区间加1。最后统计每一个点背统计的次数。然后将数值按照从大到小。给出现次数多的点赋值构造数组。最后前缀和统计。#include<bits/stdc++.h>using namespace std;const int N=1e5*2+10;typedef long long int LL;typedef pair<int,int> PII;LL a[N],b[N],c[N],s.原创 2022-03-25 00:33:05 · 282 阅读 · 0 评论 -
B. Kefa and Company【双指针】
https://codeforces.com/problemset/problem/580/B#include<bits/stdc++.h>using namespace std;typedef pair<int,int> PII;const int N=1e5+10;vector<PII>ve;int n,d,s[N];int main(void){ cin>>n>>d; for(int i=0;i<n;i++) {.原创 2022-03-23 23:32:56 · 227 阅读 · 0 评论 -
A. Powered Addition【贪心】
要想递增,故每一个数都大于等于前面的最大值。存一下这个最大的差值。然后求其二进制位数,就是最优解。#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int a[N],t,n;int main(void){ cin>>t; while(t--) { cin>>n; for(int i=1;i<=n;i++) cin>&.原创 2022-03-22 20:40:55 · 461 阅读 · 0 评论 -
C. Woodcutters【贪心】
#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int x[N],h[N],n;int main(void){ cin>>n; for(int i=1;i<=n;i++) cin>>x[i]>>h[i]; if(n<=2) cout<<n; else { int res=2;//第一个左倒,最后一个右倒 for(int i=2;i.原创 2022-03-21 23:37:31 · 234 阅读 · 0 评论 -
C. Divisibility by Eight【暴力枚举】
暴力枚举即可。枚举1位这种情况,枚举2位这种情况,枚举3位这种情况。3位满足足以,其他的4位,5位。。。都包含1000必定满足。#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int st[N];int main(void){ string s; cin>>s; for(int i=1;i<=1000;i++) if(i%8==0) st[i]++; st[0]=.原创 2022-03-21 00:15:34 · 257 阅读 · 0 评论 -
C. Kefa and Park【树的遍历】
#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int a[N],cnt[N],st[N],n,m,ans;vector<int>ve[N];void dfs(int u,int t,int maxv)//t连续的1 maxv总路径中最长的连续的1{ maxv=max(maxv,t+a[u]); if(a[u]==0) cnt[u]=0; else cnt[u]=t+a[u]; st[u.原创 2022-03-19 15:56:02 · 318 阅读 · 0 评论 -
A. Two Substrings【哈希表】
#include<bits/stdc++.h>using namespace std;map<string,int>mp;int main(void){ string s; cin>>s; bool flag=0; for(int i=0;i<s.size()+1;i++) { if(s[i]=='A'&&s[i+1]=='B') { if(mp.co.原创 2022-03-18 15:42:47 · 257 阅读 · 0 评论 -
A. Boredom【DP】
用哈希表存一下每个数出现的个数。考虑每一个数选不选依赖于前一个数。https://codeforces.com/problemset/problem/455/A#include<bits/stdc++.h>using namespace std;typedef long long int LL;const int N=1e5+10;int a[N],cnt[N],n,maxv;LL f[N][2];int main(void){ cin>>n; f.原创 2022-03-18 15:29:48 · 277 阅读 · 0 评论 -
A. Di-visible Confusion【思维】
2022.3.9题目地址:https://codeforces.com/contest/1603/problem/A如果这个数不可以删除,意味着前面所有的位置都可以被整除。#include<bits/stdc++.h>using namespace std;typedef long long int LL;const int N=1e5*5+10;int a[N],t,n;int main(void){ cin>>t; while(t--) .原创 2022-03-09 16:57:20 · 182 阅读 · 0 评论 -
A. Great Sequence【哈希】
https://codeforces.com/contest/1641/problem/A#include<bits/stdc++.h>using namespace std;const int N=1e5*3+10;int t,n,x,a[N];int main(void){ cin>>t; while(t--) { map<int,int>mp; cin>>n>>x; for(int i=0;i<n;i++.原创 2022-03-08 20:06:16 · 237 阅读 · 0 评论