- 博客(9)
- 收藏
- 关注
原创 PAT甲级1157 Anniversary
思路用两个map存储输出的两部分id,mapp1存储校友的id,mapp2存储出席的id。当输入出席id时,用mapp1.find()函数搜索是否为校友,若是则sum++,并将该id记为1;否则记为0。重写mapp2的compare函数,根据id的第7-14位从小到大排,即年纪越大的越靠前。输出sum和排序后mapp2中第一个值为1的id。代码#include<iostream>#include<map>#include<string>using name
2022-01-06 14:33:36
481
原创 PAT甲级1017 Queueing at Bank
思路用map存储客户,因为map可以自动排序,对客户到达时间从小到大排序。输入数据时排除17:00:00后的客户,处理时间>1小时的,设为1小时。时间以string形式存储,可直接比大小。大的就是晚一些的。用vector数组存储窗口的空闲时间点,初始时间点都设为"08:00:00"。处理一个客户,就将此时间加上客户处理时间。从最早到达的客户开始,首先找到最先空闲或已空闲的窗口,将此窗口的时间与客户到达时间做对比,若窗口时间小,说明客户到达时窗口就是空闲的,无需等待;若窗口时间大,说明需等待;
2021-12-14 20:32:57
1015
原创 Pat甲级1056 Mice and Rice
题解:有Np只老鼠,给出他们的重量,以Ng只为一组,找到该组最重的老鼠,该组其余老鼠淘汰,同批次被淘汰老鼠的等级相同。把每一组的最重老鼠集合再次分组。。。直到只有一只老鼠,该老鼠的等级为1。当最后一组不足Ng只时,仍然分为一组。输入的第二行即Np只老鼠的重量,该顺序也是老鼠的输出顺序。老鼠0号重量25,老鼠1号重量18,老鼠2号重量0。。。。第三行为游戏顺序,即以老鼠6号、老鼠0号、老鼠8号。。。的顺序开始比较。每组被淘汰的老鼠等级为group + 1;如:该题中,第一次比较时有11只老鼠,3
2021-12-09 18:48:59
166
原创 PAT乙级1094 谷歌的招聘
注意:前导零需要输出(测试点2)#include<iostream>#include<string>#include<cmath>#include<iomanip>using namespace std;bool isPrime(int a){ if(a == 2 || a == 3 || a == 5 || a == 7)return true; if(a == 1 || a % 2 == 0)return false;
2021-12-02 14:29:43
4549
原创 PAT乙级1060爱丁顿数
思路:对输入数据从小到大排序,因为是求最大整数,所以对i从n -> 0循环,如果有i天骑车超过i公里,那么有且只能有i个数据大于i,即排序后的第n - i + 1个数( v[n - i] )需大于i。代码:#include<iostream>#include<vector>#include<algorithm>using namespace std;int main(){ int n,i; cin>>n; vec
2021-11-26 18:34:54
122
原创 PAT乙级1005 继续(3n + 1)猜想
思路用数组a下标i代表输入的数据,a[i]表示当前状态。a[i]有三个取值,0、1、2,分别代表未输入该数据,输入过且没有被验证过,被验证过。代码#include<iostream>using namespace std;int main(){ int n,i,b,k = 0,a[105] = {0}; cin>>n; for(i = 0;i < n; ++ i){ cin>>b;
2021-11-21 10:31:40
3623
原创 C++写CCF CSP 202006-1 线性分类器
思路:numA表示A点的个数,numB表示B点的个数;da表示在给定直线上方的A点个数,xa表示在给定直线下方的A点个数;db表示在给定直线上方的B点个数,xb表示在给定直线下方的B点个数;若A点全在直线上方,B点全在下方,或者A点全在下方,B点全在上方时,给定直线可完美分割A、B点。即numA == da && numB == xb || numA == xa && numB == db。代码如下:#include <iostream>using
2020-09-20 18:07:25
152
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人