首页 > 其他分享 >「题解」Codeforces Round 887 (Div. 2)

「题解」Codeforces Round 887 (Div. 2)

时间:2023-07-24 13:11:46浏览次数:50  
标签:887 int 题解 复杂度 leq ans Div

A. Desorting

Problem

题目

Sol & Code

若序列一开始无序答案为 \(0\)

若有序即 \(a_1\leq a_2 \leq \dots \leq a_n\)。

若想让 \(a_i > a_j(i < j)\),操作次数与两数差值 \(d(d = a_j - a_i)\) 相关为 \(\lfloor\dfrac{d}{2}\rfloor+1\),差值越小操作次数越少,故枚举相邻两数取最少的操作次数。

时间复杂度为 \(O(n)\)

#include <bits/stdc++.h>
#define N 501

int T, n, a[N];

int min(int a, int b) { return a < b ? a : b; }

int main() {
  scanf("%d", &T);
  while (T--) {
    int ans = 2147483647;
    scanf("%d", &n);
    for (int i = 1; i <= n; ++i) scanf("%d", &a[i]);
    for (int i = 2; i <= n; ++i) {
      if (a[i] < a[i - 1]) { ans = 0; break; }
      else ans = min(ans, (a[i] - a[i - 1]) / 2 + 1);
    }
    printf("%d\n", ans);
  }
  return 0;
}

B. Desorting

Problem

题目

Sol & Code

斐波那契数列

设 \(x,y\) 是第 \(k\) 项为 \(n\) 的类斐波那契数列的前两项,有 \(F[k - 2]x+F[k - 1]y = n\)。

枚举 \(x\) 看是否存在合法的 \(y\)

时间复杂度为 \(O(n)\)

#include <bits/stdc++.h>

int T, n, k, f[31];

int main() {
  f[0] = 1, f[1] = 1;
  for (int i = 2; i <= 30; ++i) f[i] = f[i - 1] + f[i - 2];
  scanf("%d", &T);
  while (T--) {
    scanf("%d %d", &n, &k);
    if (k >= 30) {puts("0"); continue; }
    int ans = 0;
    for (int i = 0; i <= n; ++i) {
      if (((n - f[k - 3] * i) % f[k - 2]) == 0 && (n - f[k - 3] * i) / f[k - 2] >= i) ++ans;
    }
    printf("%d\n", ans);
  }
  return 0;
}

标签:887,int,题解,复杂度,leq,ans,Div
From: https://www.cnblogs.com/poi-bolg-poi/p/17576942.html

相关文章

  • Codeforces Round 887 (Div. 2)
    C.Ntarsis'Set​ (\(1\leqn,k\leq2\cdot10^5\))题解:思维+二分我们不妨反向考虑由于答案最后一次一定在第一个位置所以答案上一轮一定在第一个空的位置,假设这个位置为\(x\)那么如果说要使得答案在位置\(x\),那么上上一轮答案一定在第\(x\)个空的位置我们可以......
  • Codeforces Round 887 (Div 2) C. Ntarsis' Set
    Ntarsis'Set题意是给你n个数,每次按照顺序删除位于a[i]位置的这n个数,问k次后最小的是多少参考这位大佬的题解CodeforcesRound887(Div2)A~C-知乎(zhihu.com)结合一个官方题解,进行一次操作后,由于前面删掉i个数,a[i]到a[i+1]间所有数的排名都要-=i,那么在a[i]到a[i+1]之间的......
  • 洛谷AT_jsc2019_qual_e Card Collector 题解
    题目链接CardCollector-洛谷|计算机科学教育新生态(luogu.com.cn)思路将每一行、每一列转化为点,第i行第j列的卡牌转化为i->j+m(m为行数)的有向边。总共会抽取m+n(m为行数,n为列数)张牌,每个点的出度为1。结果图为基环森林;那么题目就转化为求最大基环森林。代码1#include......
  • 牛客小白月赛 47 题解
    牛客小白月赛47A.牛牛的装球游戏标签暴力思路显然,答案为\(\pir^2l-[\frac{l}{2r}]*\frac{4\pir^3}{3}\)。时间复杂度为\(\mathcalO(1)\)。代码点击查看代码#include<bits/stdc++.h>usingnamespacestd;intT;doubleans,pi=3.141592653589;intt,h,r;int......
  • 国标GB28181视频平台LntonGBS(源码版)国标云服务平台对页面过多导致加载困难的问题解决
    LntonGBS国标视频云服务平台不仅支持无缝、完整接入内网或者公网的国标设备,在输出上,实现全平台、全终端输出。平台可将GB/T28181设备/平台推送的PS流转成ES流,并提供RTSP、RTMP、FLV、HLS、WebRTC等多种格式视频流的分发服务,实现Web浏览器、手机浏览器、微信端、PC客户端等各终端无......
  • 【题解】Educational Codeforces Round 151(CF1845)
    VP战报:1h过了A,B,C,D然后被E罚坐1hrank:210th题解只有A-EA.ForbiddenInteger题目描述:你需要构造一个正整数序列,满足:对于\(i\),\(a_i\lek\)且\(a_i\not=x\)。\(\suma_i=n\)。如无法构造,输出NO,否则输出YES后,输出序列长度与序列中的每一个数。多测\(t\le......
  • AT_abc180_d 题解
    洛谷链接&Atcoder链接本篇题解为此题较简单做法及较少码量,并且码风优良,请放心阅读。题目简述现有\(STR\)和\(EXP\)两个变量,初始化分别为\(X\)和\(0\),可对变量\(STR\)做以下两种操作:将\(STR\)乘\(A\),并将\(EXP\)自加\(1\)。将\(STR\)加上\(B\),并将\(E......
  • P1387 最大正方形 题解
    注意细节通过二维前缀和判定矩形内是否全为1,计算和等于长度的平方就判断为是复杂度\(\Theta(n^2\log{n})\)#include<bits/stdc++.h>#defineN(int)(105)usingnamespacestd;intmp[N][N];ints[N][N];intn,m;boolcheck(intlenth){ for(inti=1;i+lenth......
  • Codeforces Round 886 (Div. 4) 题解 A - H
    A.ToMyCritics题目大意给定三个数,你可以挑俩数加起来,问这仨数有没有可能加起来大于等于\(10\).解题思路我们找其中最大的两个数相加与\(10\)比较即可。ACCode#include<iostream>#include<algorithm>#include<cstring>#defineendl'\n'#defineiosios::sync......
  • Codeforces Round 886 (Div. 4) 全题题解
    我关注的人中正式参与比赛排名公示:#Who=Penalty*ABCDEFGH1(980)Chen_Jinhui7381\(\color{#00CC00}{\textbf{+}}\)00:05\(\color{#00CC00}{\textbf{+1}}\)00:17\(\color{#00CC00}{\textbf{+}}\)00:19\(\color{#00CC00}{\textbf{+}}\)01:08......