春季每日一题2022 Week 1 未完结
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了春季每日一题2022 Week 1 未完结相关的知识,希望对你有一定的参考价值。
目录
3346. 你知道你的ABC吗【排序】
#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
LL a[15];
int main(void)
for(int i=0;i<7;i++) cin>>a[i];
sort(a,a+7);
LL b=a[6]-a[4];
LL a1=a[6]-a[5];
LL c=a[6]-a1-b;
cout<<a1<<" "<<b<<" "<<c<<endl;
return 0;
3358. 放养但没有完全放养【贪心】
就看下一个字母是在它的前面还是后面,再后面说明可以是同一首,否则重新起一首。
#include<bits/stdc++.h>
using namespace std;
string a,b;
int cnt[35];
int main(void)
cin>>a>>b;
for(int i=0;i<a.size();i++) cnt[a[i]-'a']=i;
int last=-1,ans=1;
for(int i=0;i<b.size();i++)
if(cnt[b[i]-'a']>last) last=cnt[b[i]-'a'];
else ans++,last=cnt[b[i]-'a'];
cout<<ans;
3370. 牛年【模拟】
说明他们的相对位置是唯一确定的。
#include<bits/stdc++.h>
using namespace std;
map<string,int>mp;
map<string,int>d;
string s[12]="Ox","Tiger","Rabbit","Dragon","Snake","Horse","Goat","Monkey","Rooster","Dog","Pig","Rat";
int main(void)
int t; cin>>t;
mp["Bessie"]=0,d["Bessie"]=0;
string a; getline(cin,a);
for(int i=0;i<t;i++)
getline(cin,a);
string name1=a.substr(0,a.find(' '));
string name2=a.substr(a.rfind(' ')+1);
int k=0;
for(int i=0;i<12;i++)//找到属相
if(a.find(s[i])!=-1)
k=i; break;
mp[name1]=k;
if(a.find("previous")!=-1)
if(mp[name1]>=mp[name2]) d[name1]=d[name2]-(12-mp[name1]+mp[name2]);//上一周期
else d[name1]=d[name2]-(mp[name2]-mp[name1]);//同一周期
else
if(mp[name1]<=mp[name2]) d[name1]=d[name2]+(12-mp[name2]+mp[name1]);//下一周期
else d[name1]=d[name2]+(mp[name1]-mp[name2]);//同一周期
cout<<abs(d["Elsie"]);
return 0;
3745. 牛的学术圈 I【二分】
注意:每个论文最多加1.
#include<bits/stdc++.h>
using namespace std;
typedef long long int LL;
const int N=1e5+10;
LL n,m,a[N];
bool check(int mid)
int cnt=0,sum=0;
for(int i=n-1;i>=0;i--)
if(a[i]>=mid) cnt++;
else
if(a[i]+1>=mid&&sum<m) sum++,cnt++;
else break;
return cnt>=mid;
int main(void)
cin>>n>>m;
for(int i=0;i<n;i++) cin>>a[i];
sort(a,a+n);
int l=0,r=n;
while(l<r)
int mid=l+r+1>>1;
if(check(mid)) l=mid;
else r=mid-1;
cout<<l;
return 0;
1459. 奶牛体操【暴力】
#include<bits/stdc++.h>
using namespace std;
const int N=25;
int a[N][N],n,m;
int main(void)
cin>>m>>n;
for(int i=0;i<m;i++)
for(int j=0;j<n;j++) cin>>a[i][j];
int ans=0;
for(int i=1;i<=n;i++)
int cnt[N]=0;
for(int j=0;j<m;j++)
int index=0;
for(int k=0;k<n;k++)
if(a[j][k]==i) index=k;break;//找到位置
for(int k=index+1;k<n;k++) cnt[a[j][k]]++;//在他后面的
for(int j=1;j<=n;j++)
if(cnt[j]==m) ans++;
cout<<ans;
return 0;
1442. 单词处理器【模拟】
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
string a[N];
int n,m;
int main(void)
cin>>n>>m;
for(int i=0;i<n;i++) cin>>a[i];
int sum=0;
for(int i=0;i<n;i++)
if(sum+a[i].size()<=m) cout<<a[i]<<" ",sum+=a[i].size();
else puts(""),sum=a[i].size(),cout<<a[i]<<" ";
return 0;
以上是关于春季每日一题2022 Week 1 未完结的主要内容,如果未能解决你的问题,请参考以下文章