2021夏季每日一题 week4 完结
Posted 辉小歌
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021夏季每日一题 week4 完结相关的知识,希望对你有一定的参考价值。
3617. 子矩形计数【难度: 中等 / 知识点: 差分 思维】
#include<bits/stdc++.h>
using namespace std;
const int N=4*1e4+10;
int n,m,k;
int a[N],b[N];
int s1[N],s2[N];
void work(int a[],int s[],int n)
{
int cnt=0;
for(int i=0;i<n;i++)
{
if(a[i])
{
cnt++;
s[1]++,s[cnt+1]--;
}else cnt=0;
}
for(int i=1;i<=n;i++) s[i]+=s[i-1];
}
int main(void)
{
cin>>n>>m>>k;
for(int i=0;i<n;i++) cin>>a[i];
for(int i=0;i<m;i++) cin>>b[i];
work(a,s1,n),work(b,s2,m);
long long int ans=0;
for(int i=1;i<=n;i++)
{
if(k%i) continue;
if((k/i)>m) continue;
ans+=s1[i]*s2[k/i];
}
cout<<ans;
return 0;
}
3624. 三值字符串 【难度: 简单 / 知识点: 双指针】
#include<bits/stdc++.h>
using namespace std;
int main(void)
{
int t; cin>>t;
while(t--)
{
string s; cin>>s;
map<int,int>mp;
int ans=1e9;
for(int i=0,j=0;i<s.size();i++)
{
int t=s[i]-'0';
mp[t]++;
while(mp[s[j]-'0']>=2) mp[s[j]-'0']--,j++;
if(mp[1]&&mp[2]&&mp[3]) ans=min(ans,i-j+1);
}
if(ans==1e9) cout<<0<<endl;
else cout<<ans<<endl;
}
return 0;
}
3629. 同心圆涂色 【难度: 简单 / 知识点: 模拟】
#include<bits/stdc++.h>
using namespace std;
const double pi=acos(-1);
int a[100005];
int main(void)
{
int t; cin>>t;
for(int i=1;i<=t;i++) cin>>a[i];
sort(a+1,a+1+t);
double sum=0;
for(int i=1;i<=t;i++)
{
if(i%2==1) sum+=pi*a[i]*a[i];
else sum-=pi*a[i]*a[i];
}
printf("%lf\\n",abs(sum));
return 0;
}
#include<cstdio>
#include<iostream>
#include<algorithm>
#define pi 3.141592653589793238462643383279
using namespace std;
double x[10005];
bool cmp(double x,double y)
{
return x>y;
}
int main(void)
{
int n; cin>>n;
double sum=0;
for(int i=1;i<=n;i++) cin>>x[i];
sort(x+1,x+n+1,cmp);//排序
for(int i=1;i<=n;i++)
{
if(i&1) sum+=pi*x[i]*x[i];
else sum-=pi*x[i]*x[i];
}
printf("%.6lf",sum);
return 0;
}
以上是关于2021夏季每日一题 week4 完结的主要内容,如果未能解决你的问题,请参考以下文章