PAT 乙级 (将剩下的做了)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PAT 乙级 (将剩下的做了)相关的知识,希望对你有一定的参考价值。
为了提高准确率,不测试结果直接交。
1053
模拟。第二个条件注意看清楚....
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
|
#include <bits/stdc++.h> using namespace std; int main() { int n, d, x; double e, tp; cin >> n >> e >> d; int may = 0, ab = 0; for (int i = 1; i <= n; i++) { cin >> x; int sum = 0; for (int j = 1; j <= x; j++) { cin >> tp; if (tp < e) sum ++; } if (sum > x / 2) { if (x > d) //看题看仔细,并不是sum > d ab ++; else may ++; } } printf( "%.1f%% %.1f%%\n" ,(double)may * 100 / n, (double)ab * 100 / n); } |
1047
求队伍得分最高的 队伍编号和队伍总得分。队员编号无意义。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <bits/stdc++.h> #define MEM(a,b) memset(a,b,sizeof(a)) using namespace std; int main() { int max_res = -1; int max_pos = -1; int n, x, y, z; scanf( "%d" ,&n); int mp[1010]; MEM(mp,0); while (n--) { scanf( "%d-%d%d" ,&x, &y, &z); mp[x] += z; if (mp[x] > max_res) { max_res = mp[x]; max_pos = x; } } printf( "%d %d\n" ,max_pos,max_res); } |
1043
无FUCK说
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
|
#include <bits/stdc++.h> using namespace std; int main() { string str; cin >> str; int P = 0, A = 0, T = 0, e = 0, s = 0, t = 0; for (int i = 0; i < str.size(); i++) { if (str[i] == ‘P‘ )P++; else if (str[i] == ‘A‘ )A++; else if (str[i] == ‘T‘ )T++; else if (str[i] == ‘e‘ )e++; else if (str[i] == ‘s‘ )s++; else if (str[i] == ‘t‘ )t++; } while (P > 0 || A > 0 || T > 0 || e > 0 || s > 0 || t > 0) { if (P > 0) printf( "P" ),P--; if (A > 0) printf( "A" ),A--; if (T > 0) printf( "T" ),T--; if (e > 0) printf( "e" ),e--; if (s > 0) printf( "s" ),s--; if (t > 0) printf( "t" ),t--; } } |
1033
题目说:题目保证第2行输入的文字串非空。意思就是第一行可能为空。所以必须用geline不能用cin
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
|
#include <bits/stdc++.h> using namespace std; int main() { string bad, str; getline(cin,bad); // 不能用cin getline(cin,str); int op[150]; memset(op,0,sizeof(op)); for (int i = 0; i < bad.size(); i++) { op[bad[i]]++; if (bad[i] >= ‘A‘ && bad[i] <= ‘Z‘ ) op[tolower(bad[i])]++; } for (int i = 0; i < str.size(); i++) { if (op[ str[i] ] == 0) { if (str[i] >= ‘A‘ && str[i] <= ‘Z‘ && op[ ‘+‘ ] > 0) continue ; else cout << str[i]; } } cout << endl; } |
#include <bits/stdc++.h>
using namespace std;
int main()
{
string bad, str;
getline(cin,bad); // 不能用cin
getline(cin,str);
int op[150];
memset(op,0,sizeof(op));
for(int i = 0; i < bad.size(); i++)
{
op[bad[i]]++;
if(bad[i] >= ‘A‘ && bad[i] <= ‘Z‘)
op[tolower(bad[i])]++;
}
for(int i = 0; i < str.size(); i++)
{
if(op[ str[i] ] == 0)
{
if(str[i] >= ‘A‘ && str[i] <= ‘Z‘ && op[‘+‘] > 0)
continue;
else
cout << str[i];
}
}
cout << endl;
}
以上是关于PAT 乙级 (将剩下的做了)的主要内容,如果未能解决你的问题,请参考以下文章