首页 > 其他分享 >Codeforces edu 161 (div2)

Codeforces edu 161 (div2)

时间:2024-01-19 15:14:29浏览次数:32  
标签:cin int LL Codeforces len 161 st div2

Problem - A - Codeforces

思维题,判断c字符串的每一位是否都能在相对应的a字符串或者b字符串里面 找到;

如果都能找到的话就输出 NO;否则输出YES;

#include <bits/stdc++.h>
using namespace std;

int main()
{
    std::ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    
    int k;
    cin >> k;
    
    while(k --)
    {
        int len;
        cin >> len;
        string a , b, c;
        cin >> a >> b >> c;
        
        bool st = false;;
        for(int i = 0 ; i < len ; i ++)
        {
            if(c[i] == a[i])
            {
                
                continue;
            }
            else if(c[i] == b[i])
            {
                continue;
            }
            else 
            {
                st = true;
                break;
            }
        }
        if(st) cout <<"YES" << endl;
        else cout << "NO" << endl;
    }
    return 0;
    
}

Problem - B - Codeforces

涉及了组合数的问题;

拼成的三角形只有两种情况:

1.三个一样长度的 (也就是说如果某个长度的木棒 数量 >= 3 就有Cm3中选择 m个里面选择3个)

2.两个一样长度的 + 比他们小的任何一个长度的

要学会组合数的写法;

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 1e6 + 10;
int len[N];
int b[N];
bool st[N];

LL cmb(LL n, LL m)
{
    LL ans = 1;
    for(LL i =1 ; i <= m;i ++)
    {
        ans = ans * (n-m+i)/i;
    }
    return ans;
}

int main()
{
    std::ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    
    int k;
    cin >> k;
    
    while(k --)
    {
        bool st[N];
        int n;
        cin >> n;
        for(int i = 1 ; i <= n ; i ++) st[i] = false;
        
        map<int , int>p;
        map<int , int>num;
        
        for(int i = 1;  i <= n ; i ++) cin >> len[i];
        sort(len + 1 , len + n + 1);
        
        
        for(int i = 1 ; i <= n ; i ++)  p[len[i]] ++; //统计每个长度有多少个
        //for(int i = 1 ; i <= n ; i ++)
        //{
            //if(st[len[i]] == false)
            //{
                //num[len[i]] += p[len[i-1]];
                //st[len[i]] = true;
            //}
        //}
        
        LL res = 0;
        LL m = 0;
        for(auto t : p)
        {
            if(t.second >= 3)
            {
                res += cmb(t.second,3); //对应第一种情况;
            }
            res += m * cmb(t.second,2); //对应第二种情况
            m += t.second;
        }
        
        cout << res << endl;
    }
    return 0;
    
}

Problem - C - Codeforces

本题,涉及到前缀和还有后缀和的一些 方法;同时要用map存一下每个点对应的最近城市是哪一个点;

标签:cin,int,LL,Codeforces,len,161,st,div2
From: https://www.cnblogs.com/volapex-lord/p/17974643

相关文章

  • Educational Codeforces Round 161 (Rated for Div. 2)
    EducationalCodeforcesRound161(RatedforDiv.2)比赛链接A.TrickyTemplate思路:貌似只要想到了就可以,我是记录了一下字符串c和字符串a和b之间的满足数,如果等于n表示一定不存在,否则就是存在的Code:#include<bits/stdc++.h>usingnamespacestd;#defineintlonglon......
  • CodeForces & AtCoder rating 规则简述
    译者:rui_er,转载请注明出处。(备份自2020年11月2日的同名博客)本博客为了方便自己查阅,同时也方便大家了解,但因为我英语很菜,所以难免有翻译错的地方,还请评论区纠正。未注明资料来源的均为常识积累。1CodeForcesrating规则1.1CodeForcesrating与名字颜色换算设\(r\)......
  • hey_left 8 Codeforces Round 871 (Div. 4)
    题目链接A.直接比较输入字符串和已知字符串有几个不同即可#include<bits/stdc++.h>usingnamespacestd;voidsolve(){strings;cin>>s;intans=0;stringt="codeforces";for(inti=0;i<10;i++){if(s[i]!=t[i])ans++;}cout<&......
  • hey_left 7 Codeforces Round 886 (Div. 4) 续
    题目链接F.记录下出现的数字和个数注意放置陷阱的位置1-n都有可能然后遍历1-n,对每个数进行因子分解,对于在因子的位置上有青蛙的,加上青蛙的个数,取最大即可#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=2e5+10;voidsolve(){int......
  • CodeForces 1466H Finding satisfactory solutions
    洛谷传送门CF传送门考虑给定\(b\)如何构造\(a\)。拎出基环树的环部分,把这些点连同它们的边删掉(这个环一定在答案中)。递归做即可。考虑我们在\(a\)的环上连一些在\(\{b_{i,n}\}\)中排得比\(a_i\)前的\(i\toj\)。可以将问题转化为,若干个环,缩点后连一些边使得它成......
  • hey_left 6 Codeforces Round 886 (Div. 4)
    题目链接A.判总和-最小值的差是否大等于10即可#include<bits/stdc++.h>usingnamespacestd;constintN=2e5+10;voidsolve(){inta,b,c;cin>>a>>b>>c;intans=a+b+c;ans-=min({a,b,c});if(ans>=10){cout<<"YES&qu......
  • CodeForces 986F Oppa Funcan Style Remastered
    洛谷传送门CF传送门有意思的。对\(k\)分解质因数,题目实际上是想让我们解一个\(\sum\limits_{i=1}^ma_ix_i=n\)的方程。考虑\(m=1\)特判,\(m=2\)exgcd。\(m=3\)时发现\(\min\limits_{i=1}^ma_i\lek^{\frac{1}{3}}\le10^5\),所以可以跑同余最短路。......
  • CodeForces 814E An unavoidable detour for home
    洛谷传送门CF传送门考虑给图分层,一层的点一一对应上一层的一些点。设\(f_{i,j}\)为考虑了前\(i\)个点,最后一层有\(j\)个点,除了最后一层点的其他点度数限制已经满足的方案数。转移系数是\(g_{i,j,k}\)表示这一层有\(i\)个点,上一层有\(j\)个\(2\)度点,\(k\)个......
  • Codeforces Round 920 (Div. 3)
    题目链接:CodeforcesRound920(Div.3)PS:很长时间没写题,状态不好,写的很差A.Square题意:给出正方形四个点的坐标,求面积解题思路:签到查看代码 voidsolve(){ vector<PII>v; for(inti=1;i<=4;i++){ intx,y; cin>>x>>y; v.push_back({x,y}); } sort......
  • hey_left 5 Codeforces Round 898 (Div. 4)
    题目链接A.一次交换,最多让两个字符归位若三个字符都不在该在的位置上,那么无法完成若有一个字符在该在的位置上,那么可以完成usingnamespacestd;voidsolve(){chara,b,c;cin>>a>>b>>c;if(a=='a'||b=='b'||c=='c'){cout<<"YES"<<&......