首页 > 其他分享 >Codeforces Round 975 (Div. 2)

Codeforces Round 975 (Div. 2)

时间:2024-10-11 09:24:15浏览次数:7  
标签:cnt imax2 cin int 975 Codeforces maxn Div mx

Codeforces 975 div2

A. Max Plus Size

点击查看代码
void solve() {
  int n;cin>>n;
  int imax1=0,imax2=0;
  for(int i=1;i<=n;i++) {
    int x;
    cin>>x;
    if(i%2)
      imax1=max(imax1,x);
    else
      imax2=max(imax2,x);
  }
  if(!n%2) cout<<max(imax1,imax2)+n/2<<endl;
  else cout<<max(imax1+(n+1)/2,imax2+n/2)<<endl;
}

B. All Pairs Segments

每个线段内部的点的答案都是一样的,在处理一下线段两边边界的点。被包含次数就是左边*右边。用map记录答案即可。此题为贡献法,每个线段对点的贡献。

点击查看代码
const int maxn=2e6+5;
int h[maxn];
void solve() {
  int n,q;
  cin >> n >> q;
  int a[n];
  for ( int i = 1; i <= n; i++ ) cin >> a[i];
  map<int,int> cnt;
  for ( int i = 1; i < n; i++ ){
    cnt[(n - i) + (i - 1) * (n - i + 1)]++;
    if ( a[i + 1] - a[i] > 1 ){
      cnt[i * (n - i)] += (a[i + 1] - a[i] - 1);
    }
  }
  cnt[n - 1]++;
 
  while ( q-- ){
    int k;
    cin >> k;
    cout << cnt[k] << " ";
  }
  cout << endl;
}

C. Cards Partition

找最大容量,数一定,那么要尽可能小。观察到众数数量mx为最小可能组数,无法改变。则改变容量,确定最大容量。遍历大小,在每组大小确定的情况下,此时的组数是最小的可以保证合法的组数,而我们只需要判断 mx*i<=sum+k即可。

点击查看代码
const int maxn=2e6+5;
int a[maxn];
int n,k,sum,mx;
 
  void solve(){
  cin >> n >> k;
  mx = 0, sum = 0;
  for ( int i = 1; i <= n; i++ ){
    cin >> a[i];
    mx = max(mx, a[i]);
    sum += a[i];
  }
 
  int ans = 0;
  for ( int i = 1; i <= n; i++ ){
    if ( k < (sum + k) % i ) continue;
    if ( mx * i <= sum + k ){
      ans = max(ans, i);
    }
  }
  cout << ans << endl;
}

标签:cnt,imax2,cin,int,975,Codeforces,maxn,Div,mx
From: https://www.cnblogs.com/manbin/p/18457716

相关文章

  • Codeforces Round 972 (Div. 2)题解记录
    A.SimplePalindromeaeiou,如果这里后面+u则会多出2,+o则会多3,通过分析加相同的字母比加之前存在的不同字母赚发现同一个太多了,又会增太大,遂平均分配,使增多幅度上升的缓慢#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;llgcd(llx,lly){ if(y==0) r......
  • Codeforces Round 977 (Div. 2)(B-C2)
    B:感觉最近几题都用了这种继承的思想。然后就把n方转化为一个递推的问题。我写了一个跟题解不同的做法是取同余也挺巧妙的。#include<bits/stdc++.h>usingnamespacestd;#defineCIconstint&#defineintlonglongconstintmaxn=2e5+10;inta[maxn],vis[maxn],cnt[max......
  • cf2009 Codeforces Round 971 (Div. 4)
    A.Minimize!签到题。计算\((c-a)+(b-c)\)的最小值,其实值固定的,等于\(b-a\)。inta,b;voidsolve(){cin>>a>>b;cout<<b-a<<endl;}B.Osu!mania签到题。给定一个4k下落式的网格,求#下落顺序。直接数组记录就好了。intn;constintN=500;chars[......
  • codeforces round 974(div.3)E(优先队列实现dijstra算法,devc++的优先队列用greater报
    解题历程:看到两边同时移动,计算最终的相遇时间,我就想到两边同时计算各点到起点的最短距离,就是使用dijstra算法,最后所有节点取两次计算的最大值,再对所有节点取最小值,就是最终答案了,可是这个思路没有考虑有马的情况,思考一番后发现可以多列一个数组记录有马的情况下的行走最短路,然后......
  • Codeforces Round 804 (Div. 2)(C - D)
    CC观察题意,模拟样例,首先\(0\)不能动,因为相邻的\(mex\)会改变,然后\(1\)也是如此,所以我们固定了\(0\)和\(1\),设两个指针\(l\)和\(r\)表示固定的位置,那么此时在他们两个中间的数可以随便移动,假设有\(x\)个空位,那么如果\(2\)在里面,\(2\)的选......
  • [AGC064C] Erase and Divide Game 题解
    DescriptionTakahashi和Aoki玩游戏。先在黑板上写若干个数,由\(N\)个互不相交的区间\([l_i,r_i]\)组成。两人轮流操作,每次操作先删去所有的奇数/偶数,再把剩下的数除以\(2\)(向下取整),无法操作的人输。Takahashi先手,假设两人都采用最优策略,问谁能获胜。\(1\leqN\leq10^......
  • Codeforces Round 970 (Div. 3) D. Sakurako‘s Hobby
     链接cf_Sakurako‘sHobby大意:给一堆点和边,并给出点的颜色,输出每个点能遍历到几个黑点思路:1、这些点边里面有拓扑结构,也有环2、先处理拓扑排序的一些点,依次遍历无父节点的即可,之后就会剩下环3、有环的说明每个点都能去到环内任意一点,那么直接就记录一个sum,然后递归......
  • Codeforces Round 977 (Div. 2, based on COMPFEST 16 - Final Round)
    目录写在前面A签到B贪心,枚举C1贪心C2贪心,枚举DDPE1/E2Kruscal重构树,树上背包写在最后写在前面补题地址:https://codeforces.com/contest/2021。上大分失败呃呃呃呃我不要上班呜呜A签到考虑仅有三个数\(a,b,c(a<b<c)\)时最优操作,手玩下发现最优操作顺序一定是......
  • divide by zero encountered in log10 my_vmin=np.log10(data['PValue'].min())
     sm=plt.cm.ScalarMappable(cmap='viridis',norm=plt.Normalize(vmin=np.log10(data['PValue'].min()),vmax=np.log10(data['PValue'].max()))) C:\Python310\lib\site-packages\pandas\core\arraylike.py:397:RuntimeWarning:d......
  • Codeforces Round 316 (Div. 2) D题 Tree Requests(二分,dfs,在线,前缀异或)
    题目链接CodeforcesRound316(Div.2)D题TreeRequests思路将262626个字母全部当作一个二进制数。将每个深度的结点按照dfs序放到一个vector里,同时记录每个vector......