栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Educational Codeforces Round 110 (Rated for Div. 2)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Educational Codeforces Round 110 (Rated for Div. 2)

Educational Codeforces Round 110 (Rated for Div. 2) A. Fair Playoff

题目入口

思路
找出最大和次大模拟即可

代码

#include
using namespace std;
int a[5];
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int maxx=-1,max2=-1;
        for(int i=1;i<=4;i++)
        {
            cin>>a[i];
            maxx=max(maxx,a[i]);
        }
        for(int i=1;i<=4;i++)
            if(a[i]>max2&&a[i]!=maxx) max2=a[i];
        int tmp1=max(a[1],a[2]);
        int tmp2=max(a[3],a[4]);
        if(maxx==tmp1&&max2==tmp2||maxx==tmp2&&max2==tmp1) cout<<"YES"< 
B. Array Reodering 

题目入口

思路
我们发现若两数不互质,则换位置对他们没有影响,有影响的只是aj前面的系数2,由于只有偶数在前能使因子2发挥作用,因此按偶在前奇在后来排序,最后遍历所有的奇数,找出不互质的奇数对个数即可

代码

#include
using namespace std;
const int N=2005;
int t,n,a[N];
vector odd;
int gcd(int a,int b)
{
    return b==0?a:gcd(b,a%b);
}
int main()
{
    cin>>t;
    while(t--)
    {
        odd.clear();
        cin>>n;
        int res=0;
        int cnt1=0,cnt2=0;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
            if(a[i]%2)
            {
                cnt2++;
                odd.push_back(a[i]);
            }
            else cnt1++;
        }
        res+=(n-1+n-cnt1)*cnt1/2;
        for(int i=0;i1) res++;
            }
        }
        cout< 
C. Unstable String 

题目入口

思路
这题我们只要遍历字符串,找到以每个位置为结尾的满足条件的子串长度,设左有边界分别为l和r,则每次答案加上r-l+1即可,而求满足条件的最大字串我们用DP来求,dp[i][j]表示以i为结尾,是s[i]为j的最长字串长度

代码

#include
#define int long long
using namespace std;
const int N=2e5+5;
int t,dp[N][3];
char s[N];
signed main()
{
    cin>>t;
    while(t--)
    {
        cin>>s+1;
        int res=0;
        memset(dp,0,sizeof(dp));
        for(int i=1;s[i];i++)
        {
            if(s[i]=='0') dp[i][0]=dp[i-1][1]+1;
            else if(s[i]=='1') dp[i][1]=dp[i-1][0]+1;
            else
            {
                dp[i][0]=dp[i-1][1]+1;
                dp[i][1]=dp[i-1][0]+1;
            }
            res+=max(dp[i][0],dp[i][1]);
        }
        cout<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/311636.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号