2021暑假每日一题 week6 完结
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021暑假每日一题 week6 完结相关的知识,希望对你有一定的参考价值。
目录
3798. 幸运年份 【难度: 简单 / 知识点: 思维】
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
int t; cin>>t;
while(t--)
{
int n; cin>>n;
if(n<10) cout<<1<<endl;
else
{
string s=to_string(n);
int b=pow(10,s.size()-1);
int ans=(n/b+1)*b;
cout<<ans-n<<endl;
}
}
return 0;
}
3799. 送糖果 【难度: 简单 / 知识点: 模拟】
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
int t; cin>>t;
while(t--)
{
int n,m; cin>>n>>m;
int index;
for(int i=1;i<1e5;i++)
{
int sum=i+i*(i-1);
if(sum>n)
{
index=i;//保存第几次不够了。
break;
}
}
if(2*(index-1)+(index-1)*(index-2)>m) puts("Valera ");//如果上一次B不够了
else puts("Vladik");
}
return 0;
}
3800. 奇数还是偶数 【难度: 简单 / 知识点: 数学 同余】
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
typedef long long int LL;
LL a[N];
int main(void)
{
int t; cin>>t;
while(t--)
{
LL b,k; cin>>b>>k;
for(int i=0;i<k;i++) cin>>a[i];
LL sum=0;
for(int i=0;i<k;i++) sum=(sum*b+a[i])%2;
if(sum%2) puts("odd");
else puts("even");
}
}
3801. 最佳连续子数组 【难度: 一般 / 知识点: 双指针】
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N];
int main(void)
{
int t; cin>>t;
while(t--)
{
int n; cin>>n;
int ans=0;
int temp=0;
for(int i=0;i<n;i++) cin>>a[i],temp=max(temp,a[i]);
for(int i=0,j=0;i<n;i++)
{
if(a[i]==temp)
{
j=i+1;
while(j<n&&a[j]==a[i]) j++;
ans=max(ans,j-i);
i=j-1;
}
}
cout<<ans<<endl;
}
return 0;
}
3802. 消灭数组 【难度: 简单 / 知识点: dfs 分治】
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int a[N],t,n,ans;
bool check(int l,int r)
{
for(int i=l+1;i<=r;i++)
if(a[i]<a[i-1]) return false;
return true;
}
void dfs(int l,int r,int len)
{
if(len==1) return ;
if(check(l,r)) ans=max(ans,len);
else dfs(l,l+len/2-1,len/2),dfs(l+len/2,r,len/2);
}
int main(void)
{
cin>>t;
while(t--)
{
cin>>n;
for(int i=1;i<=n;i++) cin>>a[i];
ans=1;
dfs(1,n,n);
cout<<ans<<endl;
}
return 0;
}
以上是关于2021暑假每日一题 week6 完结的主要内容,如果未能解决你的问题,请参考以下文章