102400118 林嘉祚 集训第一专题

news/2025/3/11 3:08:49/文章来源:https://www.cnblogs.com/linjiazuo/p/18687419

AC截图

1、Long Loong
本题易知字符串开头为L,结尾为ng,唯一不同的是中间o的个数,于是想到用3个字符串拼接得到目标字符串。(直接用for循环输出似乎更简单)

#include <iostream>
#include <string>
using namespace std;int main()
{int n;cin >> n;string str = "L";string temp(n,'o');str = str + temp + "ng";cout << str << endl;return 0;
}

2、YES or YES?
需要检验的字符串每个只有3字符,因此直接遍历字符串是完全可以的。判断每个对应位字符是否为yes对应字母的大小写,若不是则直接输出no并跳出,若未输出no则输出yes。

#include <iostream>
#include <string>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin >> t;string s;while (t--){cin >> s;if (s[0] != 'y' && s[0] != 'Y'){cout << "no" << endl;continue;}if (s[1] != 'e' && s[1] != 'E'){cout << "no" << endl;continue;}if (s[2] != 's' && s[2] != 'S'){cout << "no" << endl;continue;}cout << "yes" << endl;}return 0;
}

3、Even? Odd? G
本题只需要判断奇偶数,但是数据范围达到了10^60,溢出了所有基本数据类型,因此需要使用高精度,用string来接受读入的整数。最后只需要判断字符串最后一位是奇是偶即可。

#include <iostream>
#include <string>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n;cin >> n;string num;while (n--){cin >> num;int len = num.size();int t = num[len-1] - '0';if (t % 2 == 0) cout << "even" << endl;else cout << "odd" << endl;}return 0;
}

4、Problem Generator
本题需要知道A到G中还需要添加的题目总数。由于A到G只有7种题目,因此只需使用桶来记录每种题目的出现次数,并与所需轮数进行比较。

#include <iostream>
#include <cstring>
using namespace std;int cnt[10];int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin >> t;while (t--){int n,m;string a;cin >> n >> m;cin >> a;memset(cnt,0,sizeof(cnt));for (int i = 0 ; i < n ; i++){int temp = a[i] - 'A' + 1;cnt[temp]++;}long long sum = 0;for (int i = 1 ; i <= 7 ; i++){sum += max(0,m-cnt[i]);}cout << sum << endl; }return 0;
} 

5、rules
本题只需要考虑代号k是否在每天中出现半数以上次数。边读入边计数,若k出现次数满足要求,则天数计数器+1,所有数据读入完再判断天数是否满足要求即可。需要注意的是当人数或天数为奇数时,除2时需向上取整。

#include <iostream>
#include <math.h>
using namespace std;int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n,m,k;cin >> n >> m >> k;int sum = 0;for (int i = 1 ; i <= m ; i++){int cnt = 0; for (int j = 1 ; j <= n ; j++){int t;cin >> t;if (t == k) cnt++;}if (cnt >= ceil(n/2.0)) sum++;} if (sum >= ceil(m/2.0)) cout << "YES" << endl;else cout << "NO" << endl;return 0;
}

6、Many Replacement
直观地按题意模拟复杂度为O(n*q),题目要卡一定超时,考虑优化。由于本题并不关心中间过程字符串长什么样,只需要知道所有替换操作后的字符串,因此每步只需要知道对应字母的变化即可。在每次操作中,将所有指向被替换字母的字母更改为指向替换字母。在所有操作结束后,逐一遍历字符串中的字符,并输出该字符所指向的字母。

#include <iostream>
#include <string>
using namespace std;int id[100];int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n,q;string s;cin >> n >> s >> q;for (int i = 97 ; i <= 122 ; i++) id[i] = i;for (int i = 1 ; i <= q ; i++){char c,d;cin >> c >> d;for (int j = 97 ; j <= 122 ; j++){if (id[j] == c){id[j] = d;}} }for (int i = 0 ; i < n ; i++){cout << (char)id[s[i]];}return 0;
}

7、更好的交换
按题目要求暴力模拟一定超时,仍需要优化。首先想到行列变化是否会互相影响。举了几个例子后,得到行列变化并不会互相影响,于是本题思路就和上一题类似,用数组记录对应位置的行和列是原矩阵中的哪行哪列,每次操作只需要交换这个用于记录的数组。最后遍历矩阵中的每个位置,输出该行该列记录的是原矩阵中的哪一位置即可。

#include <iostream>
#include <unordered_map>
using namespace std;const int N = 1e3 + 10;
int arr[N][N];
int to0[N]; //列 
int to1[N]; //行
unordered_map<int,int> mp;int main()
{ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int n,m;cin >> n >> m;for (int i = 1 ; i <= n ; i++){for (int j = 1 ; j <= n ; j++){cin >> arr[i][j];}}for (int i = 1 ; i <= n ; i++){to0[i] = to1[i] = i;}while (m--){int type,x,y; //0列 1行 cin >> type >> x >> y;if (type == 0){swap(to0[x],to0[y]);}else{swap(to1[x],to1[y]);} }for (int i = 1 ; i <= n ; i++){for (int j = 1 ; j <= n ; j++){int x = to1[i];int y = to0[j];cout << arr[x][y] << " ";}cout << endl;}return 0;
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/873634.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java开发】magic-api:一个Java接口快速开发框架

今天给小伙伴们介绍一个Java接口快速开发框架-magic-api 简介 magic-api 是一个基于 Java 的接口快速开发框架,编写接口将通过 magic-api 提供的 UI 界面完成,自动映射为 HTTP 接口,无需定义 Controller、Service、Dao、Mapper、XML、VO 等 Java 对象即可完成常见的 HTTP AP…

联想 ThinkPad 笔记本T14 CPU 降频解决方案

原因: 在工作中,打开多个 IDE 的情况下,会出现卡顿问题,发现是由于 CPU 降频到 0.5GHz 导致的。 环境: 笔记本是联想 ThinkPad T14 CPU:12th Gen Interl Core i7-1260P 系统为 Window10 专业版解决办法 经过搜索后,适合的方案如下:打开电源的卓越性能模式 在 Windows Po…

ASP.NET Core 中基于 Cookie 的身份鉴权实现步骤

在 ASP.NET Core 应用中,基于 Cookie 的身份鉴权是一种常见的身份验证方式,特别适用于传统的 Web 应用程序。Cookie 能够在用户的浏览器中存储身份验证数据,从而在用户访问应用的不同页面时保持登录状态。 一、配置 Cookie 身份验证 首先,在 Startup.cs 或 Program.cs 文件…

16 个 JavaScript 简写神技,提效 60%!

今天看到一片文章觉得很适合在工作中常常用得到 1. 三元运算符简化条件判断 // 传统写法 let result; if (someCondition) {result = yes; } else {result = no; }// 简写方式 const result = someCondition ? yes : no;2. 空值合并运算符 // 传统写法 const name = user.name…

.NET开源强大的高级日期和时间库

NodaTime 是一个为 .NET 设计的开源高级日期和时间库,提供了比 .NET 框架自带的 DateTime 和 DateTimeOffset 更加丰富和可靠的日期时间操作功能。 1. 安装 NodaTime 首先,通过 NuGet 安装 NodaTime 包: Install-Package NodaTime2. 基本概念 NodaTime 提供了多种日期和时间…

Python运行找不到tcl

运行程序提示如下: 说明D:/python/lib/tcl8.6找不到tcl8.6 解决办法:将D:\python\tcl下的tcl8.6和tk8.6两个文件夹复制到D:/python/lib/下问题得到解决

cad的打印到pdf 页边距处理

修改为微软的打印机, microsoft print to pdf后可以正常打印 但是测试过程中看到微软这个打印无法打印a2图纸 查询后是a2图纸不在默认的微软打印的列表中 按照网上的教程做了增加https://zhidao.baidu.com/question/988163076953180379.html我看图纸比例是按照1.8倍数来的, 按…

DolphinScheduler接口实操(二):如何寻找接口

转载自风_间 上一篇写了《DolphinScheduler接口实操(一):利用接口实现高效批量工作流导入及脚本上线》,通过DolphinScheduler的一些接口来实现导入-上线工作流,那么DolphinScheduler的接口应该怎么找呢?在此简单总结一篇。 接下来以手动执行一次工作流为例。 寻找接口 首…

qemu 搭建 uos ARM 架构

参考 https://blog.csdn.net/qq_41619571/article/details/1244310521.资料包下载 QEMU下载地址:链接:https://pan.baidu.com/s/1onUxTbS3RBXdBWWEwAnUBw 提取码:8888 如果不能下载请到官网下载 https://soft.wsyhn.com/soft/qemu9.0.0.exe 操作…

网站后台数据库修改密码

要修改网站后台数据库的密码,您需要访问数据库管理工具,如phpMyAdmin或MySQL Workbench。在这些工具中,您可以找到用户表,并修改相应的密码字段。具体的步骤和操作可能因数据库类型和管理工具而异。扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种C…

初创团队如何实现高效率管理任务和人员?4种方法和工具学起来

在当今竞争激烈、节奏快速的商业环境中,团队高效管理成为企业脱颖而出、持续发展的核心要素。高效管理的团队犹如一部精密运转的机器,各部分协同配合,能够显著提升工作效率,增强团队协作能力,保障项目顺利推进,为企业创造更大的价值。接下来,我们将深入剖析实现团队高效…