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 完结的主要内容,如果未能解决你的问题,请参考以下文章

2021夏季每日一题 week7 完结

2021夏季每日一题 week6 完结

2021夏季每日一题 week3 完结

2021夏季每日一题 week5 完结

2021夏季每日一题 week2 未完结

2021夏季每日一题 week1 未完结