jsp网站开发实例 pdf,wordpress 制作下载,ai素材免费下载网站,建筑方案设计案例A - Four DigitsA - Four Digits 题目大意
给定一个整数N#xff0c;其范围在0到9999之间#xff08;包含边界#xff09;。在将N转换为四位数的字符串后#xff0c;输出它。如果N的位数不足四位#xff0c;则在前面添加必要数量的零。
思路分析
可以使用输出流的格式设…A - Four DigitsA - Four Digits 题目大意
给定一个整数N其范围在0到9999之间包含边界。在将N转换为四位数的字符串后输出它。如果N的位数不足四位则在前面添加必要数量的零。
思路分析
可以使用输出流的格式设置功能来实现这一点。 具体做法是使用setw(4)和setfill(‘0’)来设置输出格式将N输出为四位数并在不足四位时用0进行填充。
时间复杂度
O(1)
AC代码
#include bits/stdc.h
using namespace std;int main() {int n;cin n;cout setw(4) setfill(0) n endl;return 0;
}B - Failing Grade / B - Failing Grade / 题目大意
有N个学生参加了一次考试。这些学生被标记为Student 1、Student 2等等第i个学生得分为ai。 分数低于P分的学生被认为考试不及格无法获得学分。求考试不及格的学生人数。
思路分析
题目要求计算考试不及格的学生人数可以通过遍历每个学生的得分并根据阈值P进行判断来实现。
时间复杂度
O(N)
AC代码
#includebits/stdc.h
using namespace std;int main() {int n, p, ans 0;cin n p;for (int i 0; i n; i) {int a;cin a;if (a p)ans;}cout ans endl;return 0;
}C - Swiss-System TournamentC - Swiss-System Tournament 题目大意
题目要求模拟一个石头剪刀布比赛参赛选手分为2N人根据比赛结果和ID号码对选手进行排名最终输出排名结果。
思路分析
创建一个大小为2N的数组rank其中每个元素是一个pair表示参赛者的胜场数和ID号码。初始时所有参赛者的胜场数都为0ID号码按照输入顺序排列。
然后按照比赛轮数M进行迭代。在每一轮比赛中遍历每一个比赛对根据比赛结果判断胜利者并更新其胜场数。比赛结果的判断通过一个judge函数来实现根据石头剪刀布的规则判定两个选手之间的比赛结果。
每轮比赛结束后根据选手的胜场数对rank数组进行排序以确定排名。排序时因为要使用sort函数所以要首先根据胜场数的负值排序然后根据ID号码排序。
最后按照排名顺序输出参赛者的ID号码注意要将ID号码加1因为在代码中使用的是0-based索引。
时间复杂度
O(NMlogN)
AC代码
#include iostream
#include vector
#include algorithm
using namespace std;// 判断胜负的函数
int judge(char a, char b) {// -1 平局0前一个人胜利1后一个人胜利if (a b) return -1;if (a G b P) return 1;if (a C b G) return 1;if (a P b C) return 1;return 0;
}int main() {int N, M;cin N M; // 输入参赛人数N和比赛轮数Mvectorstring S(2 * N); // 存储所有参赛者的手势序列for (int i 0; i 2 * N; i) {cin S[i]; // 输入每个参赛者的手势序列}vectorpairint, int rank(2 * N); // 存储参赛者的排名和IDfor (int i 0; i 2 * N; i) {rank[i] make_pair(0, i); // 初始化排名和ID初始胜场数为0}// rank[i] [x,y] - 第(i1)名参赛者的胜场数为 -xID为 yfor (int j 0; j M; j) {for (int i 0; i N; i) {int player1 rank[2 * i].second; // 第i个比赛对中的第一个参赛者的IDint player2 rank[2 * i 1].second; // 第i个比赛对中的第二个参赛者的IDint result judge(S[player1][j], S[player2][j]); // 第j轮比赛中两位参赛者的结果if (result ! -1) rank[2 * i result].first - 1; // 根据比赛结果更新排名}sort(rank.begin(), rank.end()); // 按照胜场数对参赛者进行排序}for (auto p : rank) {cout p.second 1 endl; // 输出最终的排名}return 0;
}