比赛链接:https://codeforces.com/contest/1371

A. Magical Sticks

题意

有 $n$ 根小棍,长度从 $1$ 到 $n$,每次可以将两根小棍连接起来,问最多有多少根小棍长度相同。

题解

如:1 2 3 4 5,相同长度最多的情况为 1+4  2+3  5 。

即 $(1 + n - 1), (2 + n - 2), \dots$,所以答案为 $\lfloor \frac{n - 1}{2} \rfloor + 1$ 。

代码

#include <bits/stdc++.h>
using namespace std; void solve() {
int n; cin >> n;
cout << (n - 1) / 2 + 1 << "\n";
} int main() {
int t; cin >> t;
while (t--) solve();
}

B. Magical Calendar

题意

日历的一行为一周,问当一周的天数从 $1$ 到 $r$ 时,连续涂 $n$ 天的形状共有多少种。

题解

当 $r_i < n$ 时,连续涂 $n$ 天的形状共有 $r_i$ 种,因为第一天可以从 $r_i$ 个点开始涂,且形状都不相同;

当 $r_i \ge n$ 时,此时无论从哪一天开始涂,形状都是一条长方形。

所以:

  • 若 $r<n$,答案即 $1+2+ \dots + r = \frac{r(r+1)}{2}$
  • 若 $r \ge n$,答案即 $1+2+ \dots + (n - 1) + 1 = \frac{n(n-1)}{2} + 1$

代码

#include <bits/stdc++.h>
using ll = long long;
using namespace std; void solve() {
ll n, r; cin >> n >> r;
cout << (r < n ? r * (r + 1) / 2 : n * (n - 1) / 2 + 1) << "\n";
} int main() {
int t; cin >> t;
while (t--) solve();
}

C. A Cookie for You

题意

有 $a$ 个香草饼干,$b$ 个巧克力饼干,第一种客人有 $n$ 个,第二种客人有 $m$ 个。

第一种客人行动如下:如果香草饼干的个数多于巧克力饼干,吃一个香草饼干,否则吃一个巧克力饼干。

第二种客人行动如下:如果香草饼干的个数多于巧克力饼干,吃一个巧克力饼干,否则吃一个香草饼干。

如果一个客人要吃的饼干没有了,他就会生气,判断是否存在一种使所有客人都不会生气的方案。

题解

简化一下两种客人的行动:

第二种客人每次都会吃最少的一种饼干,一定会使两种饼干中的最小值发生变化,所以第二种客人吃的饼干数不会多于初始时两种饼干中的最小值。

第一种客人可以视为哪个多吃哪个,不一定会使两种饼干的最小值发生变化,所以应先让第二种客人吃最少的一种饼干,余下的饼干总数不少于第一种客人的个数就可以了。

代码

#include <bits/stdc++.h>
using ll = long long;
using namespace std; void solve() {
ll a, b, n, m; cin >> a >> b >> n >> m;
cout << (a + b >= n + m and min(a, b) >= m ? "Yes" : "No") << "\n";
} int main() {
int t; cin >> t;
while (t--) solve();
}

D. Grid-00100

题意

向 $n \times n$ 的空方阵中填入 $k$ 个 $1$,使得每行、列 $1$ 的个数的最值差最小。

题解

首先最容易想到的是先按中央斜对角线填:

但是斜对角线长度不一,接下来就会变成这样:

此时第 $6$ 个 $1$ 显然填右上角最合适,即:

由此猜测从中央左下方和右上角依次填对角线。

值得一提的是,如果将左下角的对角线和右上角对应的对角线连起来,长度和中央对角线是相同的,同为 $n$,由此有了下面的简化写法。

代码

#include <bits/stdc++.h>
using namespace std; void solve() {
int n, k; cin >> n >> k;
cout << (k % n == 0 ? 0 : 2) << "\n";
int MP[n][n] = {};
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
if (k > 0) {
MP[j][(i + j) % n] = 1;
--k;
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
cout << MP[i][j];
cout << "\n";
}
} int main() {
int t; cin >> t;
while (t--) solve();
}

Codeforces Round #654 (Div. 2)的更多相关文章

  1. Codeforces Round #654 (Div. 2) A~E 题解

    LINK:CF R 654 div2 前言:F题是一个线段树分类讨论的题目 比赛的时候没看 赛后感觉没什么意思 所以咕掉了. 记事:第一次笼统的写一场比赛的题目 可能是我这场比赛打的太差了 题目不难 ...

  2. Codeforces Round #654 (Div. 2) B. Magical Calendar (结论)

    题意:你需要在长度从\(1\)~\(k\),宽度无限的网格图中造图形(每个点四周必须连通),问最多能造出多少种不同的图形. 题解:感觉没什么好说的,就是画图找规律,如果\(r\ge n\)的话(即没有 ...

  3. Codeforces Round #654 (Div. 2) D. Grid-00100 (构造)

    题意:构造一个\(n\)x\(n\)只含\(0\)和\(k\)个\(1\)的矩阵,统计每一行每一列\(1\)的sum,然后构造一个权值最大行和最小行的差的平方加权值最大列和最小列的差的平方的最小和(\ ...

  4. Codeforces Round #654 (Div. 2) C. A Cookie for You (思维)

    题意:有\(a\)个蛋糕,\(b\)个巧克力,第一类人有\(n\)个,总是吃多的东西(若\(a>b\),吃蛋糕,否则吃巧克力),第二类人有\(m\)个,总是吃少的,可以随便调整这两类人吃的顺序, ...

  5. Codeforces Round #366 (Div. 2) ABC

    Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...

  6. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  7. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  8. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  9. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

随机推荐

  1. 【环境搭建】SSM 整合使用

    SSM 整合使用 文章源码 搭建整合环境 整合说明 SSM 整合可以使用多种方式,但是选择 XML + 注解 的方式最为合适. 整合思路 搭建整合环境 Spring 环境搭建并测试 Spring 整合 ...

  2. 【Flutter】可滚动组件之SingleChildScrollView

    前言 SingleChildScrollView类似于Android中的ScrollView,它只能接收一个子组件. 接口描述 const SingleChildScrollView({ Key ke ...

  3. 【Oracle】DRM官方介绍

    DRM 简介 By:  Allen Gao 首先,我们对和DRM 相关的一些概念进行介绍. Buffer: 对于RAC 数据库,当一个数据块被读入到buffer cache后,我们就称其为buffer ...

  4. 攻防世界—pwn—guess_num

    题目分析 checksec检查文件保护机制 这个结果看的我满是问号??? \n ida分析程序 是一个猜数字的游戏,需要全部输入正确才能得到flag 根据大佬的wp得出一下内容 先使用srand()进 ...

  5. CTFshow-萌新赛web_假赛生

    打开靶机 网页源码提示代码如下 根据提示,存在 login.php register.php,根据要求需要用户名为admin,尝试注册后发现已存在,接着尝试注册用户名admin+空格,接着用admin ...

  6. 详解MySQL执行事务的语法和流程

    摘要:MySQL 提供了多种存储引擎来支持事务. MySQL 提供了多种存储引擎来支持事务.支持事务的存储引擎有 InnoDB 和 BDB,其中,InnoDB 存储引擎事务主要通过 UNDO 日志和 ...

  7. 二. SpringCloud基本Rest微服务工程搭建

    1. 父工程构建 1.1 Maven项目搭建 环境 版本 JDK 1.8 Maven 3.6+ Maven模板 maven-archetype-size 删除父工程src文件 1.2 父工程pom文件 ...

  8. Python小度

    这只是一个对话器!还不能听歌(反正我也没在UNIT平台配置听歌的功能)! 反正最近也不知怎么的,就想做一个AI对话器语音识别和语音输出都不要,input()和print()就行本来准备用小爱的,但要实 ...

  9. 使用remix实现给合约账户转账

    实现内容:从remix上的虚拟账户上转账给自己编写的智能合约账户 前提基础:对solidity有一些基础了解,对以太坊的账户机制有一定了解. 账户 在以太坊中账户的唯一标识是地址(address). ...

  10. 为什么 TCP 协议有粘包问题

    为什么 TCP 协议有粘包问题 这部分转载自draveness博客. TCP/IP 协议簇建立了互联网中通信协议的概念模型,该协议簇中的两个主要协议就是 TCP 和 IP 协议.TCP/ IP 协议簇 ...