首页 > 其他分享 >Educational Codeforces Round 134 (Rated for Div. 2) A-C

Educational Codeforces Round 134 (Rated for Div. 2) A-C

时间:2022-08-28 12:44:08浏览次数:50  
标签:Educational Rated cout int Codeforces bj cin ai fo

2A,C题wa2不知道为什么。B题少判一个条件:左上角

A :

题意有点不懂,到最后才知道是有多少种数,就输出这个种数-1即可

int n,m;

void solve()
{
//    cin>>n>>m;
    char s[4];
    cin>>s[0]>>s[1]>>s[2]>>s[3];
    set<int> q;
    fo(i,0,3) {
        q.insert(s[i]);
    } 
    cout<< q.size() - 1<<endl;
}

 

B:

有四种方法拦着可以让左上角的点到不了右下角:

1.左边和上面

2.右边和下面

3.左边和右边

4.上面和下面

const int N = 2000;
int n,m,sx,sy,d;

int dis(int x,int y) {
    return abs(x - y);
}

void solve()
{
   cin>>n>>m>>sx>>sy>>d;
   if(    dis(n,sx) <= d && dis(1,sx) <=d
           || dis(1,sy) <= d && dis(m,sy) <=d
           || dis(sy,m) <= d && dis(n,sx)<=d
           || dis(sx,1) <= d && dis(1,sy) <=d
   ) {
       cout<<-1<<endl;rt;
   }

   cout<<n + m - 2<<endl;
   
}

 

C:

题意:输入a和b两个数组,a是有序的,b是排过序的,在 满足 b = a + di (d>=0) 的情况下,问每个di 的最小值和最大值

分情况考虑

最小值:说明 a 和 b 最近,找尽量前面的 b ,也就是找第一个比 a 大的 b 即可

为什么正确?

 j <= i ,如果 bj >= ai ,说明 b[j,i] 都比 ai 大,ai 又比前面的所有 a 都大,所以满足条件

 

最大值:说明 a 和 b 最远,找尽量后面的 b ,怎么样使 ai 和 bj 互换,也能让所有 a[i+1,j] 都有比自己大的 bj 呢? 除了 bj ,离aj 最近的就是 bj-1,同理,离 aj-1最近的就是 bj-2,只要后面的 a能挨个和前面的 b 匹配, bj 就能跳过来和 ai匹配

ps:每遍历到一个 i ,j从 i 和 j中选一个最大的开始往后遍历,不用再管前面的数。

 

const int N = 2e5+10;
int n,m;
int a[N],b[N];
void solve()
{
    cin>>n;
    fo(i,1,n) cin>>a[i];
    fo(i,1,n) cin>>b[i];
    
    int j = 1;
    fo(i,1,n) {
        while(j < n && a[i] > b[j] ) j ++ ;
        cout<<(b[j] - a[i]) <<' ';
    } 
    cout<<endl;
    j = 1;
    fo(i,1,n) {
        j = max(j,i);
        while(j < n && b[j] >= a[j+1]) j ++ ;
        cout<<(b[j] - a[i]) <<' ';
    } 
    cout<<endl;
}

 

标签:Educational,Rated,cout,int,Codeforces,bj,cin,ai,fo
From: https://www.cnblogs.com/er007/p/16632567.html

相关文章

  • Educational Codeforces Round 134 (Rated for Div. 2)
    EducationalCodeforcesRound134(RatedforDiv.2)D.MaximumAND题目大意给出序列a,b,b可以任意排列,序列c有\(c_i=a_i\bigoplusb_i\)。c序列的价值为c1&c2&c33...&......
  • Codeforces Round #816 (Div. 2)/CodeForces1715
    CodeForces1715Crossmarket解析:题目大意有一个\(n\timesm\)的空间,Stanley需要从左上角到右下角;Megan则需要从左下角到右上角。两人可以耗费\(1\)能量到达相邻......
  • 学习随笔——codeforces题目Build Permutation解答
    摘要:本题属于构造算法,虽然简单但对思维提升有一定帮助题目原地址如下:https://codeforces.com/problemset/problem/1713/C题目截图如下:  关键词:构造算法,动态规划,*120......
  • Codeforces Round #813 (Div. 2) A - E2
    A:一组长度为n的排列,问交换多少次,能让前m个数变成[1,m]中的数输出前m个数中有多少个比m大的就可以了//-------------------------代码----------------------------......
  • codeforces round #815 (div.2) B. Interesting Sum
    一开始的想法是n^2时间暴力枚举片段的开头和结尾,但是时间肯定不行。所以干脆想办法缩减时间,用个priority_queue呀,甚至尝试着动态规划。但是很显然无论如何这种东西没法dp,完......
  • Codeforces Round #814 (Div. 2) A-D2
    A:ChipGame题意:只能向上走和向右走,走到右上角,最后一步谁操作谁就赢只要判断总步数的奇偶性就可以了//-------------------------代码----------------------------......
  • Codeforces Round #779 D
    D1我们先来看D1啊我最开始理解的就是一个翻转但是只在0开始时才是正确的这里就有一组hack1203他会输出0而不是3为啥???这样一想好像是正确的每次要是01数字不同......
  • Educational Codeforces Round 106 (Rated for Div. 2) | CF1499
    E一个暴力是显然的,\(f(i,j,k)\)表示当前已经使用\(a\)的前\(i\)位,\(b\)的前\(j\)位,最后一位是\(a\)还是\(b\)的。然后\(O(n^2)\)枚举起点跑下去即可。为啥......
  • Codeforces Round #770 (Div. 2)
    CodeforcesRound#770(Div.2)VPABCDE7min30min63min131min+2+2排名:rk485基准分:\(\color{Purple}{1967}\)A\(\color{Gray}{800}\)CF1......
  • Codeforces Round #772 (Div. 2)
    CodeforcesRound#772(Div.2)VPABC3min12min52min+4排名:rk3893基准分:\(\color{ForestGreen}{1362}\)从天选到天崩A\(\color{Gray}{800}\)......