Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) 简单解析

Posted wsxmmfby-jy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) 简单解析相关的知识,希望对你有一定的参考价值。

A题

输入两个长度为n的数组a,b,(其中第i项是1的话代表有,0代表没有, 要求a比b数组大,对于每一项都有对应的价值pi, 尽可能控制每一项最小)

输出 要求出使得a数组比b大的pi中的最大项

思路:相同情况的就抵消掉(不许考虑),只需要考虑1.b有,a没有;2.  a有,b没有,两种情况,对于所有1情况都将对应的pi设置为1,计算总和,然后平分在情况2中

技术图片
 1 #include <iostream>
 2 #include <bits/stdc++.h>
 3 
 4 using namespace std;
 5 typedef long long ll;
 6 typedef pair<int,int>PII;
 7 const int N = 1e5+10;
 8 const ll mod = 1e9+7;
 9 int a[110],b[110];
10 int main()
11 {
12     int n;
13     cin >> n;
14     ll num =0,cun=0;
15     for(int i=1;i<=n;i++)
16     {
17         cin>> a[i];
18     }
19      for(int i=1;i<=n;i++)
20     {
21         cin>> b[i];
22     }
23      for(int i=1;i<=n;i++)
24     {
25         if(b[i]==1&&a[i]==1)continue;
26         else if(a[i]==1&&b[i]==0)num++;
27         else if(a[i]==0&&b[i]==1)cun++;
28     }
29     if(num==0)
30     {
31         cout << -1<<endl;
32     }
33     else
34     cout << cun/num +1<<endl;
35     return 0;
36 }
View Code

B题

输入长度为n的一组数组

输出符合条件的最大和

条件是要求 对于满足 ( aj - ai = j- i   )一组数(对于这一组数任意两项瞒足,这个条件)的和,求最大和

重点分析一下哈aj-ai = j- i,合并一下同类项  aj - j = ai - i;因此可以将这个数组所有的情况都计算一遍

技术图片
 1 B
 2 //a[i] - a[j] = i -j;----> a[i]-i=a[j]-j
 3 //这里为了保证a[i]-i>=0;就对n取模
 4 #include <bits/stdc++.h>
 5 
 6 using namespace std;
 7 typedef long long ll;
 8 const int N = 2e5+10;
 9 const int M = 1e6+10;
10 int a[N];
11 ll tg[M];
12 int main()
13 {
14     int n;
15     cin >> n;
16     for(int i=1;i<=n;i++)
17     {
18         cin >> a[i];
19         tg[a[i]-i+n]+=a[i];
20     }
21     ll ma =0;
22     for(int i=0;i<=M;i++)
23         ma =max(ma,tg[i]);
24     cout << ma <<endl;
25 }
View Code

 

以上是关于Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) 简单解析的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces Round #625 Div. 2 D E

Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) A. Contest for Robots(思维题)

Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round)

Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) 简单解析

Codeforces Round #625 Div1 C,二维偏序,排序+线段树

CODEFORCE ROUND #625 DIV2