简单模拟
123
小鱼朵~
计算机小废宅
展开
-
1128 N Queens Puzzle
1128 N Queens Puzzle题意解读 一个数组包含k个数字,每个数字表示该列的皇后所在的行数,判断给出的皇后图是否满足不会互相攻击(任意两个皇后都要不在同一行或者同一列,且不在斜对角线上)。且一共有n组循环,需要判断n副皇后图。整体思路外层循环:k为该副皇后图的皇后个数;给出一个vector数组v存储每个皇后位置;设置一个flag表示此副皇后图是否会发生冲突(初始化为true,表示不会发生冲突)内层循环:每次向vector数组v读入一个皇后的位置,再对它之前的所有皇后做一次遍历(如果原创 2021-08-04 16:38:37 · 74 阅读 · 0 评论 -
1031. Hello World for U (20)
1031. Hello World for U (20)题目大意用所给字符串按U型输出。n1和n3是左右两条竖线从上到下的字符个数,n2是底部横线从左到右的字符个数。要求:n1 == n3n2 >= n1n1为在满足上述条件的情况下的最大值基本思路假设n = 字符串长度 + 2,因为2 * n1 + n2 = n,且要保证n2 >= n1, n1尽可能地大,分类讨论:如果n % 3 == 0,n正好被3整除,直接n1 == n2 == n3;如果n % 3 == 1,因原创 2022-01-23 21:58:25 · 115 阅读 · 0 评论 -
1065 A+B and C (64bit) (20 分)
1065 A+B and C (64bit) (20 分)题目大意判断a、b两数之和是否大于c,是输出true,否输出false。注意:需要进行溢出判断。基本思路若A、B异号或其中一个为0,则可直接相加;若A、B > 0。若C <= 0,则直接true;若C > 0,转换为A > C - B若A、B < 0。若C >= 0,则直接false;若C < 0,转换为A > C - B也可以利用溢出后变号的规律,最大值+1 = 最小值,相当于取值范围原创 2022-01-23 21:25:49 · 138 阅读 · 0 评论 -
1042 Shuffling Machine (20 分)
1042 Shuffling Machine (20 分)题目大意简单模拟洗牌操作。基本思路通过数组start、end、next完成洗牌相关的操作。通过转换关系输出最终结果。代码#include <bits/stdc++.h>using namespace std;const int N=54;int start1[N+1],end1[N+1],next1[N+1];int main(){ int n;//洗牌次数 cin>>n; //初原创 2022-01-23 20:53:56 · 191 阅读 · 0 评论 -
1124 Raffle for Weibo Followers
1124 Raffle for Weibo Followers题目大意小明PAT考了满分,高兴之余决定发起微博转发抽奖活动,从转发的网友中按顺序每隔N个人就发出一个红包。请你编写程序帮助他确定中奖名单。注意:可能有人转发多次,但不能中奖多次。所以如果处于当前中奖位置的网友已经中过奖,则跳过他顺次取下一位。按照输入的顺序输出中奖名单,每个昵称占一行。如果没有人中奖,则输出“Keep going…”基本思路用map存储当前用户有没有已经中奖过~当输入的时候,判断当前字符串是否已经在map中出现过,如果出原创 2022-01-23 12:03:32 · 180 阅读 · 0 评论 -
1036. Boys vs Girls (25)
1036. Boys vs Girls (25)题目大意给出N个同学的信息,输出女生中的最高分获得者的信息与男生中最低分获得者的信息,并输出他们的分数差。如果不存在女生或者男生,则对应获得者信息处输出Absent,而且差值处输出NA。基本思路用string类型的female和male保存要求的学生的信息,femalescore和malescore处保存男生的最低分和女生的最高分。一开始设femalescore为最低值-1,malescore为最高值101,最后根据分值是否为-1或者101来判断是否原创 2022-01-23 11:45:11 · 164 阅读 · 0 评论 -
1046 Shortest Distance (20 分)
1046 Shortest Distance (20 分)题目大意简单模拟。基本思路所有结点连起来会形成一个环形。dis[i]存储第1个结点到第i个结点的下一个结点的距离。sum保存整个路径一圈的总和值。求得结果就是dis[right – 1] – dis[left – 1]和 sum – dis[right – 1] – dis[left – 1]中较小的那一个。代码#include <bits/stdc++.h>using namespace std;int main() {原创 2022-01-22 22:32:18 · 219 阅读 · 0 评论 -
1006. Sign In and Sign Out (25)
1006. Sign In and Sign Out (25)题目大意给出n个人的id、sign in时间、sign out时间,求最早进来的人和最早出去的人的ID。基本思路将时间都转换为总秒数,最早和最迟的时间保存在变量minn和maxn中,并同时保存当前最早和最迟的人的ID,最后输出代码#include <bits/stdc++.h>using namespace std;int main(){ int n; int minn=INT_MAX,maxn=I原创 2022-01-22 21:14:39 · 92 阅读 · 0 评论 -
1011. World Cup Betting (20)
1011. World Cup Betting (20)题目大意给出三场比赛以及每场比赛的W、T、L的赔率,选取每一场比赛中赔率最大的三个数a b c,先输出三行各自选择的是W、T、L中的哪一个,然后根据计算公式 (a * b * c * 0.65 - 1) * 2 得出最大收益~基本思路以三个数一组的形式读取,读取完一组后输出最大值代表的字母,然后同时ans累乘该最大值,最后根据公式输出结果~代码#include <bits/stdc++.h>using namespace原创 2022-01-20 22:47:57 · 432 阅读 · 0 评论 -
1008 Elevator (20 分)
1008 Elevator (20 分)题目大意电梯从0层开始向上,给出该电梯依次按顺序停的楼层数,并且已知上升需要6秒/层,下降需要4秒/层,停下来的话需要停5秒,问走完所有需要停的楼层后总共花了多少时间。基本思路now表示当前的层号(初始化为0),a表示目标层号,sum表示总共花费的时间。当目标层号非空时(cin>>a的返回值为true)循环:当a > now,电梯上升,需要6 * (a - now)秒,当a < now,电梯下降,需要4 * (now - a)秒,每原创 2021-10-12 09:58:56 · 89 阅读 · 0 评论 -
1001 A+B Format (20 分)
1001 A+B Format (20 分)题意解读:将两个数字相加后,按照指定的格式(从后往前,每三个数字之间加一个“ ,”)进行输出思路:水题,直接看代码注释就行代码:#include <cstring>#include <string>#include <iostream>#include <algorithm>using namespace std;int main(){ int a,b; cin>>原创 2021-08-04 12:22:05 · 61 阅读 · 0 评论