【解题报告】Codeforces Round #401 (Div. 2)

SNAP实战:哨兵1 SLC数据预处理全流程详解(附避坑指南) 本文详细解析了使用SNAP软件处理哨兵1号SLC数据的完整预处理流程。从轨道精校正、辐射定标到多视与斑点滤波,再到地理编码,文章提供了清晰的操作步骤与核心逻辑,并重点分享了实践中的常见“坑”与解决方案,旨在帮助用户高效、准确地完成SAR数据预处理。 阅读详情

题目链接


A. Shell Game(Codeforces 777A)

思路

为了更好地找到解题关键,先将小球随杯子运动的轨迹画在纸上。具体地,假设初始状态球在杯子 1 中。在纸上画一个数组 d ,其中 d[i] 表示当杯子被移动 i 次时,小球的位置。不难发现, d[i] 随 i 的增大呈现出周期性,其周期为 6 。对任意初始状态都可以画出这种数组。
于是我们用二维数组 d[i][j] 表示初始状态下小球在杯子 i 中,当杯子被移动了 j 次时小球的位置。对任意输入 n ,枚举i使得 d[i][n]=x ,那么 i 就是答案。

代码

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

int n, x;
int d[3][6] = { {0, 1, 2, 2, 1, 0},
        {1, 0, 0, 1, 2, 2},
        {2, 2, 1, 0, 0, 1} };

int main() {
//  freopen("data.txt", "r", stdin);
    cin >> n >> x;
    n = n % 6;
    for(int i = 0; i < 3; i++) {
        if(d[i][n] == x) {
            cout << i << endl;
            break;
        }
    }
    return 0;
}

B. Game of Credit Cards(Codeforces 777B)

思路

首先这个数据规模暴力肯定是不行了。那么潜在的,可能有贪心策略也可能是动态规划。那么先考察有没有贪心策略。因为两个字符串的序对本题是没有影响的(因为M已经知道S的出牌顺序)。因此考虑对两个字符串进行排序。我们分两种策略来考虑:

  • 被 S 攻击的最少次数。假设我们是 M ,那么我们的目标是让对方的牌尽可能不发挥作用。我们从当前 S 的点数最大的 S[i] 这儿考虑。为了让 S[i] 哑火,我们可以拿出最大的 M[j] 来压制它。这样为什么是最好的呢?因为如果 M[j] 都压不住它,那么也没有牌能够压住它了。况且如果此时不用 M[j] ,有什么理由以后再用它呢?有人可能会反驳:能不能放弃压制 S[i] ,把 M[j] 留到后面用呢?假如这样做,那么最好的情况是结果不变,最差的情况是结果变大了(也就是次优解)。因此我们按照点数从大到小枚举 S[i] ,用当前最大的牌来压制对方即可。

    • 攻击 S 的最多次数。假设我们是 M ,那我们的目标是让我们的牌尽可能发挥作用。那么我们从 M 的点数最大的 M[j] 这儿考虑。为了让 M[j] 发挥最大效果,我们选择比 M[j] 小的(或相等的)最大的 S[i] 下手。因为对于任意满足 S[k]≤S[i] 的 k ,都存在 S[k]≤M[j] ,那么将 M[j] 用在 S[i] 上最利于我方的后来的牌的发挥。我们同样可以从大到小枚举 S[j] ,用当前最大的牌来压制对方。
    • 代码

      #include <bits/stdc++.h>
      using namespace std;
      
      const int maxn = 1010;
      char S[maxn], M[maxn];
      int n, Max, Min;
      
      int main() {
      //  freopen("data.txt", "r", stdin);
          scanf("%d%s%s", &n, S, M);
          sort(S, S + n);
          sort(M, M + n);
          int j = n - 1;
          for(int i = n - 1; i >= 0; i--) {
              if(S[i] > M[j]) {
                  Min++;
              }
              else {
                  j--;
              }
          }
          j = n - 1;
          for(int i = n - 1; i >= 0; i--) {
              if(S[i] < M[j]) {
                  Max++;
                  j--;
              }
          }
          printf("%d\n%d\n", Min, Max);
          return 0;
      }

      C. Alyona and Spreadsheet(Codeforces 777C)

      思路

      对于这题,不少人都能够立即想到暴力的解法:对于每列 j ,检查行区间 [l,r] 中的每行,看看这些行是不是在 j 列上单调不减。这是不错的想法,但是时间复杂度太大了,达到了 O(nm+n+m) 。
      事实上,这种要对矩阵进行某种统计,暴力解复杂度太大的题,多半是要维护某种神奇的量,使得我们只用枚举行或枚举列就能完成这种统计。话说 CF 出这种题已经不是一次两次了。
      那么这题怎么样呢?我们可以事先统计 d[j][i] ,表示以 i 行 j 列的元素 aij 为终点的最长上升子串(注意是子串而不是子序列)的长度为多少。此时原问题就转化成

      对于第 r 行,是否存在一个 j ,使得 r−d[j][r]+1≤l 。

      不等式左边的式子表示以 r 为区间右端点 d[j][r] 为区间长度的区间左端点的编号(也就是本题的行号)是多少。将式子变形后问题转化成

      是否存在一个 j ,使得 d[j][r]≥r−l+1 。

      显然这个问题就是在问

      max{d[j][r]}≥r−l+1 是否成立。

      那么对于每个 r ,维护 d[j][r] 的最大值即可。这既是我前面所说的神奇的量。

      最后,实现上需要注意一个细节。因为题目只说 n×m≤105 ,所以理论上说 n,m 都有可能达到 105 。在存矩阵的时候如果用二维数组的话会超内存限制。所以得采用类似图论中邻接表的数据结构才能存下。

      代码

      #include <bits/stdc++.h>
      using namespace std;
      
      const int maxn = 1e5 + 10;
      vector <int> a[maxn], d[maxn];
      int n, m, k, l, r, num, Max[maxn];
      
      int main() {
      //  freopen("data.txt", "r", stdin);
          scanf("%d%d", &n, &m);
          // 输入并存储矩阵
          for(int i = 1; i <= n; i++) {
              a[i].push_back(0);
              for(int j = 1; j <= m; j++) {
                  scanf("%d", &num);
                  a[i].push_back(num);
              }
          }
          for(int j = 1; j <= m; j++) {
              d[j].push_back(0);
              d[j].push_back(1);
          }
          // 对每列计算以某个元素结尾的最长不下降子串
          for(int j = 1; j <= m; j++) {
              for(int i = 2; i <= n; i++) {
                  if(a[i][j] >= a[i-1][j]) {
                      d[j].push_back(d[j][i-1] + 1);
                  }
                  else {
                      d[j].push_back(1);
                  }
              }
          }
          // 统计每行的列最长不下降子串的最大值
          for(int i = 1; i <= n; i++) {
              for(int j = 1; j <= m; j++) {
                  Max[i] = max(Max[i], d[j][i]);
              }
          }
          // 回答查询
          scanf("%d", &k);
          while(k--) {
              scanf("%d%d", &l, &r);
              puts(r - Max[r] + 1 <= l ? "Yes" : "No");
          }
          return 0;
      }

      D. Cloud of Hashtags(Codeforces 777D)

      思路

      这题从数据规模和“字典序”这个这么强的条件来看,可能存在贪心策略。首先从先往后考虑,结果是没什么结果。那么从后往前考虑呢?首先,对于一个字符串,我们删除它的后缀只会让它的字典序变小而不是变大。那么,对于倒数第一个串 s[n] 和倒数第二个串 s[n−1] ,如果字典序 s[n]<s[n−1] ,那么我们对 s[n] 做任何事情都于事无补,但可以删除 s[n−1] 的后缀。
      从这个灵感不难得出贪心算法:我们从第一位开始逐位比较两个字符串 s[i] 和 s[i−1] 。

      • 如果出现某位j使得 s[i][j]>s[i−1][j] ,那么一切顺利。
      • 如果出现某位j使得 s[i][j]<s[i−1][j] ,那么从 j 开始的 s[i−1] 的后缀要全部删除掉。
      • 如果一直是 s[i][j]==s[i−1][j] 直到某个串被遍历完,那么只需要 s[i] 的长度大于或等于 s[i−1] 的长度即可。

      代码

      #include <bits/stdc++.h>
      using namespace std;
      
      const int maxn = 5e5 + 10;
      string s[maxn];
      bool equ;
      int n, p1, p2;
      
      int main() {
      //  freopen("data.txt", "r", stdin);
          ios::sync_with_stdio(false);
          cin.tie(0);
          cin >> n;
          for(int i = 1; i <= n; i++) {
              cin >> s[i];
          }
          for(int i = n - 1; i >= 1; i--) {
              equ = true;
              p1 = p2 = 0;
              while(true) {
                  if(s[i+1][p1] < s[i][p2]) {
                      if(true == equ) {
                          s[i] = s[i].substr(0, p2);
                      }
                      break;
                  }
                  if(s[i+1][p1] > s[i][p2]) {
                      equ = false;
                  }
                  if(++p2 >= s[i].size()) {
                      break;
                  }
                  if(++p1 >= s[i+1].size()) {
                      if(true == equ) {
                          s[i] = s[i].substr(0, p2);
                      }
                      break;
                  }
              }
          }
          for(int i = 1; i <= n; i++) {
              cout << s[i] << endl;
          }
          return 0;
      }

      E. Hanoi Factory(Codeforces 777E)

      思路

      这题显然不是贪心能够解决的(很难找到某个顺序进行某种贪心策略)。考虑动态规划。我们需要有一个“序”来让动规满足“无后效性”。根据题目的特点先按照外径从大到小对 ring 排序,当外径相等时按照内径从大到小排序(相当于排在前面的一定放在下面)。这时候就可以设计动态规划算法了。
      令状态 i 表示当前考虑到 ringi 这个物品,且 ringi 是放在塔顶的物品, d[i] 表示状态 i 下的最优解。若某个状态 j 可以转移到状态 i ,那么物品 ringi 的外径一定要严格小于 ringj 的外径,且物品 ringi 的外径一定要严格大于 ringj 的内径,用方程来描述状态转移过程中最优解的变化有( a,b,h 数组分别存放内径,外径和高度)

      d[i]=max{d[j],j<i,b[i]>a[j]}

      这看上去会是一个 O(n2) 的算法。让我们来尝试优化它(所以一定要熟悉动态规划及其优化技巧,这样才能自信认为这样的优化会奏效)。根据 j<i 这个信息。我们可以开一个数组 data[] ,假设我们处理到状态 i 了, data[k] 表示在状态 i 之前出现过的内径为 k 的物品在塔的最顶端时的最优解。那么我们就可以通过区间最大值查询 RMQ(1,b[i]−1) ,来得知 max{d[j],j<i,b[i]>a[j]} (相当于不需要知道 j ,而直接知道了 d[j] ),从而更新 d[i] ,然后通过 d[i] 来更新 data[a[i]] 。那么这有什么用呢?将问题逐步变形至此有什么好处呢?答案是,动态的 RMQ 以及修改元素是可以用线段树在 O(logn) 的时间内完成的(需要对内径离散化)。只要将 data 数组用线段树维护起来就好了。这样,本题的复杂度达到了 O(nlogn) ,这是可以接受的。

      代码

      #include <bits/stdc++.h>
      using namespace std;
      
      #define lch (k << 1)
      #define rch (k << 1 | 1)
      #define mid ((l + r) >> 1)
      
      typedef long long ll;
      const int maxn = 2e5 + 10;
      map <int, int> mp;
      int n, a, b, h, m, foo[maxn], bar[maxn];
      ll d, tmp, ans;
      
      // 排序用的ring结构体
      struct ring {
          int a, b, h;
          ring() {}
          ring(int a, int b, int h):a(a), b(b), h(h) {}
          bool operator < (const ring& o) const {
              if(b == o.b) {
                  return a > o.a;
              }
              return b > o.b;
          }
      }rings[maxn];
      
      // 线段树
      template <class T>
      struct Tree {
          T data[maxn<<2];
          T operate(T x, T y) {
              return max(x, y);
          }
          void pushUp(int k) {
              data[k] = operate(data[lch], data[rch]);
          }
          // 建树
          void build(int k, int l, int r) {
              if(l == r) {
                  data[k] = 0;
                  return;
              }
              build(lch, l, mid);
              build(rch, mid + 1, r);
              pushUp(k);
          }
          // 修改
          void update(int a, T v, int k, int l, int r) {
              if(l == r) {
                  data[k] = v;
                  return;
              }
              if(a <= mid) {
                  update(a, v, lch, l, mid);
              }
              else {
                  update(a, v, rch, mid + 1, r);
              }
              pushUp(k);
          }
          // 查询
          T query(int a, int b, int k, int l, int r) {
              if(a <= l && r <= b) {
                  return data[k];
              }
              ll res = 0;
              if(a <= mid) {
                  res = operate(res, query(a, b, lch, l, mid));
              }
              if(b > mid) {
                  res = operate(res, query(a, b, rch, mid + 1, r));
              }
              return res;
          }
      };
      
      Tree <ll> o;
      
      // 离散化
      int dec(int a[], int b[], int n, map <int, int>& mp) {
          copy(a + 1, a + n + 1, b + 1);
          sort(b + 1, b + n + 1);
          int m = unique(b + 1, b + n + 1) - b - 1;
          for(int i = 1; i <= n; i++) {
              mp[a[i]] = lower_bound(b + 1, b + m + 1, a[i]) - b;
          }
          return m;
      }
      
      int main() {
      //  freopen("data.txt", "r", stdin);
          scanf("%d", &n);
          for(int i = 1; i <= n; i++) {
              scanf("%d%d%d", &a, &b, &h);
              rings[i] = ring(a, b, h);
              foo[i] = a;
              foo[n + i] = b;
          }
          // 离散化
          m = dec(foo, bar, 2 * n, mp);
          o.build(1, 1, m);
          sort(rings + 1, rings + n + 1);
          for(int i = 1; i <= n; i++) {
              a = rings[i].a;
              b = rings[i].b;
              h = rings[i].h;
              // 查询d[j]
              if(mp[b] >= 2) {
                  d = o.query(1, mp[b] - 1, 1, 1, m) + h;
              }
              else {
                  d = h;
              }
              // tmp相当于d[i]
              tmp = o.query(mp[a], mp[a], 1, 1, m);
              // 将d[i]插入线段树
              if(d > tmp) {
                  o.update(mp[a], d, 1, 1, m);
              }
              // 用d[i]更新答案
              ans = max(ans, d);
          }
          printf("%I64d\n", ans);
          return 0;
      }

ORBSLAM3运行记录(单目+IMU) ORBSLAM3运行记录1.单目+IMU数据集运行记录自己做的其它测试2.单目+IMU自己采集数据运行记录测试结果 1.单目+IMU数据集运行记录 ORBSLAM3没有预留ROS下单目+IMU的结点,这个需要自己去写代码添加,可以参考这篇博客,《ORBSLAM3 用ROS接口运行双目IMU和单目IMU模式》。我的ROS结点为Mono-IMU,字典文件ORBvoc.txt在ORBSLAM3 / Vocabulary文件夹中,配置文件EuRoC.yaml在ORB_SLAM3 / Examples / Monoc 阅读详情

相关推荐

威联通改装飞牛fnOS全攻略:从刷机到Docker影视部署

NAS系统是家庭数字存储的核心,x86架构的威联通设备凭借通用引导和驱动支持,成为改装替代系统的理想平台。飞牛fnOS作为基于Debian的国产NAS系统,以简洁UI、内置Docker和影视墙以及硬件转码能力,吸引了大量玩家。通过U盘引导安装、BIOS调整、系统盘SSD部署,可实现系统切换;原机械硬盘可挂载为存储池,配合Docker部署下载、远程访问等容器,影视中心自动削刮海报墙,硬件转码保障4K播放。改装过程需注意引导失败、硬盘识别、核显驱动等问题。这套方案能让老旧威联通焕发新生,兼顾易用性与扩展性。本文

weixin_33585822的博客 757

codeforces-401c

#include"iostream" #include"algorithm" #include"vector" #include"stack" #include"queue" #include"map" #include"cstring" #include"cstdio" using namespace std; int n[200005]; int

mengyinhu123的博客 254

ESP32驱动MLX90640红外热成像传感器:从报错到成功运行的完整避坑指南

本文是一份详细的ESP32驱动MLX90640红外热成像传感器的实战指南。针对开发中常见的I2C通信失败、数据全零及‘坏点过多’等报错,文章提供了从环境搭建、驱动库选择与改造到实战代码解析的完整解决方案,并分享了数据滤波、热图生成及多任务优化等高级技巧,帮助开发者高效避坑,实现稳定运行。

weixin_29191669的博客 94

Codeforces 401C 题解

题意简述 构造一个01序列,使得这个序列中连续的0长度小于2,连续的1长度小于3,并且有n个0,m个1。(有SPJ,构造一个即可)。没有解输出-1。n,m&lt;=1000000n,m&lt;=1000000n,m<=1000000 数据 输入 1 2 输出 101 输入 4 8 输出 110110110101 输入 4 10 输出 11011011011011 输入 1 5...

LightningUZ的博客 379

WPS集成DeepSeek最新教程,附详细图文,让文案生成更智能

本文将为大家详细介绍如何将 DeepSeek 功能集成到 WPS 中,通过 OfficeAI 插件,你无需进行复杂的本地部署,只需通过官网连接即可快速启用 DeepSeek 强大的 AI 功能。不论是文案生成、翻译校对,还是深度推理、决策支持,DeepSeek 都能为你提供便捷的解决方案。让我们一起来看看如何操作吧!

Java徐师兄的博客 6万+

FPGA笔试题知识点汇总(21~40)

FPGA笔试题知识点汇总(21~40)

weixin_52487896的博客 5875

CodeForces 401C Team

Team Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u  Description Now it's time of Olympiads. Vanya and Egor decided to make his own team to take part in a programming

yu_ming_cong的专栏 468

(UE4 4.27) HISM性能优化:从空间剔除到合批渲染的实战解析

本文深入解析了UE4 4.27中HISM(UHierarchicalInstancedStaticMesh)组件的性能优化原理与实战技巧。核心在于利用其N叉树空间结构实现高效的CPU视锥剔除,并结合GPU实例化进行合批渲染。文章详细探讨了从控制叶子节点粒度、平衡剔除精度与渲染效率,到结合LOD系统等关键参数的调优方法,为开放世界或大场景的植被性能瓶颈提供了系统解决方案。

weixin_29015051的博客 327

codeforces 401E. Olympic Games

这个题目是真心不会了,请教了蛋蛋。题目的大致意思是,有一个n*m的grid,起点为(0,0) 每个点上都可以站人,现在选取两个人站在点上,要求两人的欧式距离在[l,r]之间。并且两人直接不能有穿过其他的点,比如(0,0)与(2,2)是不可以的,因为穿过了(1,1)点。问这样的对数有多少? 这道题目我们首先是枚举两人相隔的x坐标距离dx(对于dx为0的暂时不考虑),另外的dy需要满足dx*dx+d

u013920003的专栏 1132

QCC304x系列开发教程(实战篇)之5.2 QCC3040之提示音

earbud_init.c中,初始化table中UiPrompts_Init /*! \brief Table of initialisation functions */ static const init_table_entry_t appInitTable[] = { ......... {UiPrompts_Init, 0, NULL}, ......... } ui_prompts.c中是提示音音处理的主要逻辑和配置源文件 函数static void uiPro...

心跳包的博客 2393

【TC3xx芯片】TC3xx芯片STM介绍

TC3xx芯片STM介绍

qq_36056498的博客 2280

Codeforces401C Team【构造+贪心】

C. Team time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Now it's time of Olympiads. Vanya and Egor decided to make his

mengxiang000000 753

【YOLO目标检测全栈实战】68 模型量化:从FP32到INT8,精度不掉,速度翻倍

摘要: 模型量化能显著提升推理速度(如YOLOv5s帧率从15FPS提升至38FPS),但需避免三大误区:1)校准集需覆盖实际场景,而非随机采样;2)敏感层(如检测头)应保留FP32精度;3)预处理必须与量化前后一致。通过混合精度量化(Backbone用INT8,检测头用FP32)和逐通道量化,可实现<1%的mAP损失。关键步骤包括校准数据准备、量化感知训练及逐层精度评估,最终在Jetson Nano等边缘设备上实现速度与精度的平衡。

企鹅码农的专属播客,分享10多年的实战案例和经验解读,包含YOLO、RT-DETR、AI等各个工作领域。 146

Codeforces Round #401 (div. 2)解题报告

Problem A-Shell Game 找规律 6个一组 //Author: Lixiang #include struct Shell_Game{ int N,X; void init(){ scanf("%d%d",&N,&X); } int getans(){ switch(N%6){ case 0: if(X==0)return 0; if(X=

理想之国 518

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Codeforces Round #401 (Div. 2)解题报告

A - Shell Game 1 #include <iostream> 2 #include<bits/stdc++.h> 3 #include <stack> 4 #include <queue> 5 #include <map> 6 #include <set> 7 #include ...

weixin_30727835的博客 130

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Codeforces Round #401 (Div. 2) A B C D E

Codeforces Round #401 (Div. 2) 第一套。 刷100套cf,加油加油!!! ps:写题解时没看题,题意可能有错 A:Shell Game 题意:三个杯子,其中一个下面有东西,操作:先交换左和中间,再交换右和中间。给出n次操作后的状态,东西在x(0,1,或2)位置,让你求出初始东西在哪个位置。 0 1 2 1 0 2 1 2 0 2 1 ...

ailei7251的博客 231

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Codeforces Round #713 (Div. 3)-C. A-B Palindrome-题解

目录Codeforces Round #713 (Div. 3)-C. A-B PalindromeProblem DescriptionInputOutputSample InputSample Onput题目大意解题思路AC代码 Codeforces Round #713 (Div. 3)-C. A-B Palindrome 传送门 Time Limit: 2 seconds Memory Limit: 256 megabytes Problem Description You are given a

<font color="Pink">Tisfy的博客</font> 1万+

Codeforces Round #401 (Div. 2)C. Alyona and Spreadsheet

Codeforces Round #401 (Div. 2)C. Alyona and Spreadsheet 看代码  一种新的思想 dp 以每行 #include using namespace std; const int MAXN=100010; int n,m,a[MAXN],last[MAXN],h[MAXN],k; int main() { scanf("%d%d"

liyanfeng1996的博客 340

Codeforces Round #401 (Div. 2)

Codeforces Round #401 (Div. 2)    很happy,现场榜很happy,完全将昨晚的不悦忘了。终判我校一片惨白,小董同学怒怼D\E,离AK就差一个C了,于是我AC了C题还剩35分钟立刻开D题,不料英文苦涩难懂,懂了题意之后发现也是个水题,从后往前遍历一遍即可。然而代码速度和思维都不算很好,还有半分钟在徘徊要不要测一下样例,但又怕OJ卡了,直接交第一组就跪了,然后发现

NYIST_TC_LYQ的博客 741

Codeforces Round #401 (Div. 2) A~E

http://codeforces.com/contest/777  (Codeforces Round #401 (Div. 2) ) 好的嘛,最简单的一次cf,也是做的最差的一次 abc大数据全挂。。。。。。。。。。。 A.是那个状态数组少写一个。。在纸上写对了 #include #include #include #include #include #include #i

jerans的博客 287

Codeforces Round #401 (Div. 2) 【结题报告】

总结下, 看题慢,读错题,代码能力渣,思维不敏捷,菜的一逼。Shell Game————————————————————————————————————————————傻逼题,, 明确题意 枚举下所有情况 就能AC了。。int main(){ int n,x; scanf("%d",&n); scanf("%d",&x); n%=6; if(x==0){

Tabris的博客 507

Codeforces Round #235 (Div. 2)

500pt: 题目链接:http://codeforces.com/problemset/problem/401/A A. Vanya and Cards time limit per test 1 second memory limit per test 256 megabytes input standard input output

wangyuquanliuli的专栏 1379

Codeforces Round #401 (div.2)

自己的号2000+了....临时找了一个1540的号,和一个大佬@ditoly一起打... 这是大佬↓ 迟到了一下,过了十分钟才报名..... A....... B.你有n个数,对面也有n个数,两两对决!!! 求最多大于对面的数多少场,大等于对面的数多少场。 直接贪心 #include<iostream> #include<cstdio> #...

weixin_30532987的博客 128

Codeforces Round #401 (Div. 2) 离翻身就差2分钟

Codeforces Round #401 (Div. 2) 很happy,现场榜很happy,完全将昨晚的不悦忘了。终判我校一片惨白,小董同学怒怼D\E,离AK就差一个C了,于是我AC了C题还剩35分钟立刻开D题,不料英文苦...

weixin_30869099的博客 131

Codeforces Round #235 (Div. 2) C Team 构造法

题目链接:http://codeforces.com/contest/401/problem/C 题目大意:输入两个整数n,m。n代表0的个数,m代表1的个数。要求输出一串数字(只包含0与1),且0不能相邻,三个1不能连续。如果无解则输出-1. 解题思路: 先判断无解的状态,当这串数字是这样的时候:11011011.....011  此时的0的个数是最少的,即2*n+2==m,化简得到:2*

Just do IT! 750
上一篇: 【解题报告】Codeforces Round #395 (Div. 2)
下一篇: 【解题报告】ICM Technex 2017 and Codeforces Round #400 (Div. 1 + Div. 2, combined)
TRiddle
博客等级 码龄11年 14粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值