【LGR-142-Div.4】洛谷入门赛 #13 赛后总结
A.魔方
目测入门 -,就是需要开long long
//1
#include<bits/stdc++.h>
typedef long long valueType;
int main() {
valueType N;
std::cin >> N;
std::cout << 8 << ' ' << (12 * (N - 2)) << ' ' << (6 * (N - 2) * (N - 2)) << std::flush;
return 0;
}
B.教学楼
突然想起来刚学OI的时候三个数排序手打 6 个if,,,
//2
#include<bits/stdc++.h>
int main() {
int n, a, b, c;
std::cin >> n >> a >> b >> c;
if(std::min({a, b, c}) == a && n <= 3)
std::cout << "library" << std::flush;
else if(std::min({b, c}) == b && n <= 5)
std::cout << "comprehensive" << std::flush;
else if(n <= 9)
std::cout << "art" << std::flush;
return 0;
}
C.课桌
\]
//3
#include<bits/stdc++.h>
int main() {
long long n, x;
std::cin >> n >> x;
long long result = n * x;
for(int i = 1; i <= n; ++i) {
int t;
std::cin >> t;
result += t;
}
std::cout << result << std::flush;
}
D.教室
定义教室学生总数为 \(s\),则
\]
还需要注意如果整除的话,最后一排人数是 \(m\)。
//4
#include<bits/stdc++.h>
int main() {
long long n, m;
std::cin >> n >> m;
long long sum = 0;
for(int i = 1; i <= n; ++i) {
long long a, b, c;
std::cin >> a >> b >> c;
sum += a * b * c;
}
std::cout << (long long)(std::ceil((double)sum / m)) << ' ' << (long long)((sum % m == 0 ? m : sum % m)) << std::flush;
}
E.信
模拟。
//5
#include<bits/stdc++.h>
int main() {
long long n, x, y, a, b;
std::cin >> n >> x >> y >> a >> b;
long long t = 0, sum = 0, max = INT_MIN;
for(int i = 1; i <= n; ++i) {
int S, s, M;
std::cin >> S >> s >> M;
int const M0 = S * x + y * s;
if(M == M0) {
t = std::min(t - 1, (long long)-1);
if(t <= -b) {
sum = std::floor(sum / 2.0);
}
} else {
sum += (M - M0);
if(M > 2 * M0) {
sum += std::ceil((M - M0) / 2.0);
}
t = std::max(t + 1, (long long)1);
if(t >= a) {
sum <<= 1;
}
}
max = std::max(max, sum);
}
std::cout << max << ' ' << sum << std::flush;
}
F.纸条
不会。
G.棋
直接 \(\mathcal{O}(NM)\) 暴力判断有没有人胜利即可,需要注意数组越界和连续五个 ~。
//7
#include<bits/stdc++.h>
int main() {
int n, m;
std::cin >> n >> m;
std::vector<std::vector<char>> source;
source.resize(n + 200, std::vector<char>(m + 200));
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= m; ++j)
std::cin >> source[i][j];
std::function<bool(int, int)> check = [&source, n, m] (int i, int j) {
char const now = source[i][j];
if(now != '*' && now != '$')
return false;
if(i - 4 >= 1)
if(source[i - 4][j] == now && source[i - 3][j] == now && source[i - 2][j] == now && source[i - 1][j] == now)
return true;
if(i + 4 <= n)
if(source[i + 4][j] == now && source[i + 3][j] == now && source[i + 2][j] == now && source[i + 1][j] == now)
return true;
if(j - 4 <= n)
if(source[i][j - 4] == now && source[i][j - 3] == now && source[i][j - 2] == now && source[i][j - 1] == now)
return true;
if(j + 4 <= n)
if(source[i][j + 4] == now && source[i][j + 3] == now && source[i][j + 2] == now && source[i][j + 1] == now)
return true;
if(i - 4 >= 1 && j - 4 >= 1)
if(source[i - 4][j - 4] == now && source[i - 3][j - 3] == now && source[i - 2][j - 2] == now && source[i - 1][j - 1] == now)
return true;
if(i - 4 >= 1 && j + 4 <= m)
if(source[i - 4][j + 4] == now && source[i - 3][j + 3] == now && source[i - 2][j + 2] == now && source[i - 1][j + 1] == now)
return true;
if(i + 4 <= n && j - 4 >= 1)
if(source[i + 4][j - 4] == now && source[i + 3][j - 3] == now && source[i + 2][j - 2] == now && source[i + 1][j - 1] == now)
return true;
if(i + 4 <= n && j + 4 <= m)
if(source[i + 4][j + 4] == now && source[i + 3][j + 3] == now && source[i + 2][j + 2] == now && source[i - 1][j + 1] == now)
return true;
return false;
};
int his = 0, her = 0;
for(int i = 1; i <= n; ++i) {
for(int j = 1; j <= m; ++j) {
if(source[i][j] == '*')
++her;
else if(source[i][j] == '$')
++his;
if(check(i, j)) {
std::cout << (source[i][j] == '*' ? "Pleasing!" : "zylwins!") << std::flush;
return 0;
}
}
}
if(his == her)
std::cout << "W" << std::flush;
else if(her == his + 1)
std::cout << "Z" << std::flush;
}
H.演唱会
到这里精神状态不佳,瞎打一通交上去发现有点分就不想动了。
I.std::cerr
第一题可以看出程序在 \(b = c - 1\) 的情况下会炸,(那个 \(-1\) 的锅)。
第二题通过通读题面和平日教训可以利用每次匹配成功在标准错误流输出的特点令其超时。
#include <iostream>
int main() {
int taskId;
std::cin >> taskId;
if (taskId == 1) {
std::cout << "1 2 3" << std::endl;
} else if (taskId == 2) {
int const t = 2e5;
std::cout << t << std::endl;
for(int i = 1; i <= t; ++i)
std::cout << "std::cerr\n";
}
}
【LGR-142-Div.4】洛谷入门赛 #13 赛后总结的更多相关文章
- 【LGR-(-8)】洛谷入门赛 #5 题解
比赛链接 9道题. 注:题目名称中链接为题目链接,题号中链接为比赛内链接 题目编号 洛谷题号 题目名称 题目难度 A P5713 [深基3.例5]洛谷团队系统 \(\color{red}{入门}\) ...
- war2 洛谷模拟赛day2 t3 状压
(new ) war2 题解:总体数据而言,我们很容易想到着就是DP啊,我们DP数组,用状态压缩,代表有那些点已经被占领过了,代表上一次我占的是那个.对于每一次状态转移,若当前我们要占领的Port ...
- 洛谷p3803 FFT入门
洛谷p3803 FFT入门 ps:花了我一天的时间弄懂fft的原理,感觉fft的折半很神奇! 大致谈一谈FFT的基本原理: 对于两个多项式的卷积,可以O(n^2)求出来(妥妥的暴力) 显然一个多项式可 ...
- 洛谷 P5594 【XR-4】模拟赛
洛谷 P5594 [XR-4]模拟赛 洛谷传送门 题目描述 X 校正在进行 CSP 前的校内集训. 一共有 nn 名 OIer 参与这次集训,教练为他们精心准备了 mm 套模拟赛题. 然而,每名 OI ...
- 草地排水 洛谷P2740 最大流 入门题目
草地排水 洛谷P2740 最大流入门题目 题意 在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫约翰修建了一 ...
- 洛谷 P5089: CodeForces #500 (Div. 1) B / 1012B : Chemical table
题目传送门:洛谷P5089. 题意简述: 一张 \(n \times m\) 的表格,有一些格子有标记,另外一些格子没有标记. 如果 \((r_1,c_1),(r_1,c_2),(r_2,c_1)\) ...
- 洛谷 P2015 二叉苹果树(codevs5565) 树形dp入门
dp这一方面的题我都不是很会,所以来练(xue)习(xi),大概把这题弄懂了. 树形dp就是在原本线性上dp改成了在 '树' 这个数据结构上dp. 一般来说,树形dp利用dfs在回溯时进行更新,使用儿 ...
- 洛谷P1667/[10.22 模拟赛] 数列 (思维+模拟)
洛谷P1667 数列 题目描述 给定一个长度是n的数列A,我们称一个数列是完美的,当且仅当对于其任意连续子序列的和都是正的.现在你有一个操作可以改变数列,选择一个区间[X,Y]满足\(A_X +A_{ ...
- 洛谷P1280 && caioj 1085 动态规划入门(非常规DP9:尼克的任务)
这道题我一直按照往常的思路想 f[i]为前i个任务的最大空暇时间 然后想不出来怎么做-- 后来看了题解 发现这里设的状态是时间,不是任务 自己思维还是太局限了,题做得太少. 很多网上题解都反着做,那么 ...
- 绝对是全网最好的Splay 入门详解——洛谷P3369&BZOJ3224: Tyvj 1728 普通平衡树 包教包会
平衡树是什么东西想必我就不用说太多了吧. 百度百科: 一个月之前的某天晚上,yuli巨佬为我们初步讲解了Splay,当时接触到了平衡树里的旋转等各种骚操作,感觉非常厉害.而第二天我调Splay的模板竟 ...
随机推荐
- OpenTranslator:一款基于ChatGPT API的翻译神器
这是一款使用 ChatGPT API 进行划词翻译和文本润色的浏览器插件.借助了 ChatGPT 强大的翻译能力,它将帮助您更流畅地阅读外语和编辑外语. 它能干啥 一. 可翻译 二. 可润色 三. 可 ...
- 驱动开发:内核使用IO/DPC定时器
本章将继续探索驱动开发中的基础部分,定时器在内核中同样很常用,在内核中定时器可以使用两种,即IO定时器,以及DPC定时器,一般来说IO定时器是DDK中提供的一种,该定时器可以为间隔为N秒做定时,但如果 ...
- flask+gunicorn+nginx部署pytorch/python应用
1. 基于flask实现python服务Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 .Flask使用 ...
- [Web Server]Tomcat调优之SpringBoot内嵌Tomcat源码分析
以springboot:2.3.12.RELEASE中内嵌的tomcat-embed-core:9.0.46为例,进行分析 1 概述 1.0 关键依赖包 spring-boot-autoconfigu ...
- LINUX 下LAMP之yum方法部署环境
一. 系统组成 系统由前台网站和后台保种服务两部分组成,其中后台保种可以扩展成多台设备,提高保种的资源量以及性能.下面安装以houtaiip代表后台保重服务器ip地址,qiantaiip代表前台网站i ...
- 循序渐进的掌握uni-app,两个小时完成一个简单项目——新闻App、新闻小程序
效果图 一.创建项目 uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.Web(响应式).以及各种小程序(微信/支付宝/百度/头条/ ...
- 分布式文件存储MinIO、安装和使用
1.MinIO简介 MinIO是高性能的对象存储,单个对象最大可达5TB.适合存储图片.视频.文档.备份数据.安装包等一系列文件.是一款主要采用Golang语言实现发开的高性能.分布式的对象存储系统. ...
- Python 使用类和实例
使用类和实例 直接修改实例的属性 编写方法以特定的方式进行修改 # 案例: class Car(): '''一次模拟汽车的简单尝试''' def __init__(self,make,model,ye ...
- MacOS 环境下 VSCode 的 C++ 环境搭建
编译器安装 编译器可以选择 Clang 或者 GCC,在 MacOS 上 Clang 的安装更为简单一些. Clang(推荐) 打开终端输入命令, clang -v 查看是否已经安装. 如果已经安装, ...
- 2023-04-10:给定两个正整数x、y,都是int整型(java里) 返回0 ~ x以内,每位数字加起来是y的数字个数。 比如,x = 20、y = 5,返回2, 因为0 ~ x以内,每位数字加起
2023-04-10:给定两个正整数x.y,都是int整型(java里) 返回0 ~ x以内,每位数字加起来是y的数字个数. 比如,x = 20.y = 5,返回2, 因为0 ~ x以内,每位数字加起 ...