PAT 天梯赛真题集
题目:L2-010 排座位
题意:
1. x与y是敌对关系: a)也有共同好友:OK but...
b)无共同朋友:No way
2. x与y是朋友关系:No problem
3. x与y既不是朋友也不敌对:OK
朋友间并查集,用map记录敌对关系。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
#include <bits/stdc++.h>
#define scf3(a,b,c) scanf("%d%d%d",&a,&b,&c)
#define scf2(a,b) scanf("%d%d",&a,&b)
using namespace std;
int fa[110];
int find( int x){ return fa[x] == x ? x : fa[x] = find(fa[x]);}
int main(){
map< pair< int , int > , bool >mp;
int n, m, k;
scf3(n,m,k);
int x, y , op;
for ( int i = 1; i <= n; i++) fa[i] = i;
for ( int i = 1; i <= m; i++){
scf3(x,y,op);
if (op == 1){
fa[find(x)] = find(y);
}
else if (op == -1){
mp[make_pair(x,y)] = false ;
mp[make_pair(y,x)] = false ;
}
}
while (k--){
scf2(x,y);
if (find(x) == find(y)){
if ( !mp.count(make_pair(x,y)) || !mp.count(make_pair(y,x)) ) //不敌对
puts ( "No problem" );
else
puts ( "OK but..." );
}
else {
if ( !mp.count(make_pair(x,y)) || !mp.count(make_pair(y,x)) ) //不敌对
puts ( "OK" );
else
puts ( "No way" );
}
}
}
|
题目:L2-009 抢红包 用力戳我直达原题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#include <bits/stdc++.h>
using namespace std;
struct Node
{
int num;
int get;
double val;
}node[10010];
bool cmp( const Node &a, const Node &b){ //核心排序代码
if (a.val == b.val)
{
if (a.get == b.get)
return a.num < b.num;
else
return a.get > b.get;
}
else
return a.val > b.val;
}
int main(){
int n, m;
memset (node,0, sizeof (node));
scanf ( "%d" ,&n);
for ( int i = 1; i <= n; i++) //初始化 下标等于编号
node[i].num = i;
for ( int i = 1; i <= n; i++){
scanf ( "%d" ,&m);
int x;
double y;
while (m--){
scanf ( "%d%lf" , &x, &y);
node[x].val += y;
node[x].get ++;
node[i].val -= y;
}
}
sort(node + 1, node + n + 1, cmp);
for ( int i = 1; i <= n; i++){
printf ( "%d %.2f\n" ,node[i].num,node[i].val/100);
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#include <bits/stdc++.h>
using namespace std;
int main(){
string s;
getline(cin,s);
int ans = -1;
for ( int i = 0; i < s.size(); i++){ // aba型
int sum = 1;
int idx = i + 1;
for ( int j = i - 1; j >= 0; j--){
if (s[idx] != s[j]) break ;
else sum += 2;
idx++;
if (idx >= s.size()) break ;
}
ans = max(ans,sum);
}
for ( int i = 0; i < s.size(); i++){ //aabb型
if (s[i] != s[i+1]) continue ;
int sum = 2;
int idx = i + 2;
for ( int j = i - 1; j >= 0; j--){
if (s[idx] != s[j]) break ;
else sum += 2;
idx++;
if (idx >= s.size()) break ;
}
ans = max(ans,sum);
}
cout << ans << endl;
}
|
题目:L2-016. 愿天下有情人都是失散多年的兄妹
用力戳我直达原题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
#include <bits/stdc++.h>
using namespace std;
set< int >st;
bool flag;
struct Node
{
int fa,mon;
char sex;
}node[100100];
void dfs( int x, int num){
if (num > 5)
return ;
st.insert(x);
if (node[x].fa != -1) find(node[x].fa,num + 1);
if (node[x].mon != -1) find(node[x].mon,num + 1);
}
void judge( int x, int num){
if (num > 5)
return ;
if (st.find(x) != st.end()){
flag = false ;
return ;
}
if (node[x].fa != -1) judge(node[x].fa, num + 1);
if (node[x].mon != -1) judge(node[x].mon,num + 1);
}
int main(){
int n, id, fa, mon;
char sex;
memset (node,-1, sizeof (node));
scanf ( "%d" ,&n);
while (n--){
scanf ( "%d %c %d %d" ,&id, &sex, &fa, &mon);
node[id].fa = fa;
node[id].mon = mon;
node[id].sex = sex;
node[fa].sex = 'M' ; //父母也要设置性别啊...不然扣了8分orz
node[mon].sex = 'F' ;
}
scanf ( "%d" ,&n);
int x, y;
while (n--){
cin >> x >> y;
if (node[x].sex == node[y].sex){
puts ( "Never Mind" );
continue ;
}
st.clear();
flag = true ;
dfs(x,1); //深搜将四代存进set
judge(y,1); //深搜看四代是否与x重,用st.find()
if (flag == true ) puts ( "Yes" );
else puts ( "No" );
}
}
|
题目:L2-015. 互评成绩 用力戳我直达原题
题意: 模拟,sort,最后存stack。如此水题,去年决赛时竟没做满分,而且弄得很复杂.......
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
#include <bits/stdc++.h>
using namespace std;
bool cmp( const int &a, const int &b){ return a > b;}
int main(){
int n, k , m, x;
double sco[10010];
scanf ( "%d%d%d" ,&n, &k, &m);
for ( int i = 0; i < n; i++){
int maxx = -1, minn = 110;
for ( int j = 0; j < k; j++){
scanf ( "%d" ,&x);
maxx = max(maxx, x);
minn = min(minn, x);
sco[i] += x;
}
sco[i] -= (maxx + minn); //去掉最高分和最低分
}
sort(sco, sco + n, cmp);
stack< double >sta;
for ( int i = 0; i < m; i++){
sta.push(sco[i] / (k - 2));
}
bool cnt = false ;
while (!sta.empty()){ //倒序输出
if (cnt) printf ( " " ); cnt = true ;
printf ( "%.3f" ,sta.top());
sta.pop();
}
}
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#include <bits/stdc++.h>
#define scf0(a) scanf("%s",&a)
#define scf1(a) scanf("%d",&a)
#define scf2(a,b) scanf("%d%d",&a,&b)
#define scf3(a,b,c) scanf("%d%d%d",&a,&b,&c)
#define MEM(a,b) memset(a,b,sizeof(a))
#define pii pair<int,int>
#define pdd pair<double,double>
#define LL long long
using namespace std;
const int INF = 0x3f3f3f3f;
const double eps = 1e-8;
const int maxn = 10000 + 5;
int main() {
int n, len, i, j;
scf1(n);
bool flag = false ;
for (len = 12; len >= 1; len--) { //长度从12往1搜
for (i = 2; i <= ( int ) sqrt (n); i++) { //i代表连续因子的第一个数,因子最大只能是sqrt(n)
LL sum = 1;
for (j = i; j <= len+i-1; j++) { //连续len个数相乘
sum *= j;
}
if (n % sum == 0) {
flag = true ;
break ;
}
}
if (flag) break ;
}
if (flag) {
printf ( "%d\n" ,len);
bool cnt = false ;
for ( int k = i; k <= len+i-1; k++) {
if (cnt) printf ( "*" ); cnt = true ;
printf ( "%d" ,k);
}
puts ( "" );
}
else {
printf ( "1\n%d" ,n);
}
}
|
转载于:https://www.cnblogs.com/bestwzh/p/6476016.html
PAT 天梯赛真题集相关推荐
- PTA 吃鱼还是吃肉 (天梯赛真题集)
此处应有两张图片 题目要求: 国家给出了 8 岁男宝宝的标准身高为 130 厘米.标准体重为 27 公斤:8 岁女宝宝的标准身高为 129 厘米.标准体重为 25 公斤. 现在你要根据小宝宝的身高体重 ...
- 团体程序设计天梯赛真题(部分题解,持续更新)
文章目录 天梯赛真题 L1-008 求整数段和(10分) 输入格式: 输出格式: 输入样例: 输出样例: 解题过程: L1-018 大笨钟(10分) 输入格式: 输出格式: 输入样例1: 输出样例1: ...
- 中国石油大学天梯赛真题模拟第四场
中国石油大学天梯赛真题模拟第四场 L1-3 阅览室 (20 分) 天梯图书阅览室请你编写一个简单的图书借阅统计程序.当读者借书时,管理员输入书号并按下S键,程序开始计时:当读者还书时,管理员输入书号并 ...
- 【GPLT】【2022天梯赛真题题解】
L1-1 今天我要赢(5分) 题目描述 2018 年我们曾经出过一题,是输出"2018 我们要赢".今年是 2022 年,你要输出的句子变成了"我要赢!就在今天!&quo ...
- 【GPLT】【2021天梯赛真题题解】【231分】
文章目录 L1-1 人与神 (5 分) 题目描述 题目分析 L1-2 两小时学完C语言 (5 分) 题目描述 题目分析 L1-3 强迫症 (10 分) 题目描述 题目分析 L1-4 降价提醒机器人 ( ...
- 【L2-040 哲哲打游戏】天梯赛L2题集
天梯赛L2-40 题目详情: 思路: 先来一张我自己的手写解析图: (字比较丑,不过呢没有对样例推到完整,这种东西最好自己推一遍哈) 我感觉想清楚这三个问题就很有思路啦: 1.开始地址是什么? 2.如 ...
- 中国石油大学天梯赛真题模拟第三场
7-7 古风排版 (20 分) 又是不仔细的锅,字符串长度范围是100,cin.getline后面长度我也写了1000,Wa了一个点.. 7-10 多项式A除以B (25 分) 这仍然是一道关于A/B ...
- 2016年天梯赛初赛题集(L1 - L2)
注意使用STL,可以很省事的~~~ 7-1 到底有多二 (15 分) 7-2 大笨钟 (10 分) 7-3 谁先倒 (15 分) 7-4 帅到没朋友 (20 分) 7-5 重要的话说三遍 (5 分) ...
- 天梯赛真题L3-008: 喊山(BFS + 数据结构)
L3-008 喊山 题目 一个山头呼喊的声音可以被临近的山头同时听到.题目假设每个山头最多有两个能听到它的临近山头.给定任意一个发出原始信号的山头,本题请你找出这个信号最远能传达到的地方. 输入格式: ...
最新文章
- php 操作分表代码
- 设计模式 — 行为型模式 — 访问者模式
- 成功解决Error while trying to retrieve text for error ORA-12154
- 阿呆做网站(3)--建数据库
- 如何查看apache,php,mysql的编译参数
- 基于jQuery的ajax系列之用FormData实现页面无刷新上传
- 如何选择程序设计语言
- openstack 重启mysql_openstack 重启服务命令
- python小球弹跳_python实现小球弹跳效果
- 硬件探索——模拟乘法器的综合应用设计实验
- **遇到“Cannot create file “不要慌**
- Taste/Thoth:Taste Architecture 概览【转Beyond Search】
- 旧作 一剪梅•秋夜
- canvas绘图在高清屏显示模糊
- Paper reading (八十六):Normalization of the microbiota in patients after treatment for colonic lesions
- 科全可拓展免费进销存系统
- IEC 60958 IEC 61937
- 安卓手机测评_安卓优化大师破解版2020-安卓优化大师去广告版下载v4.1.5
- 设计原则之【单一职责原则】
- 基于STM32单片机医院病房呼叫系统Proteus仿真