团体程序设计天梯赛 L1-016~L1-020
L1-016
思路:
按题意操作即可
代码:
#include<bits/stdc++.h>
using namespace std;
const int p = 17;
const int mod = 11;
int w[] = {7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2};
int m[] = {1, 0, 11, 9, 8, 7, 6, 5, 4, 3, 2};
bool ok(string& s) {
int ans = 0;
for(int i = 0; i < p; i++) {
int now = s[i] - '0';
ans += now * w[i];
}
int mm = s[p] == 'X' ? 11 : s[p] - '0';
return mm == m[ans % mod];
}
int main() {
int n;
cin >> n;
vector<string> v;
for(int i = 0; i < n; i++) {
string s;
cin >> s;
if(!ok(s)) v.push_back(s);
}
if(v.size() == 0) puts("All passed");
else for(string& s : v) puts(s.c_str());
return 0;
}
L1-017
思路:
按题意操作即可,注意输出精度
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
double a = 0, b, c = 1, d = 1;
string s;
cin >> s;
b = s.length();
for(char& c : s) if(c == '2') a += 1;
if(((s[b - 1] - '0') & 1) == 0) d = 2;
if(s[0] == '-') c = 1.5, --b;
printf("%.2f%%", 100.0 * a / b * c * d);
return 0;
}
L1-018
思路:
按题意操作即可
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a, b;
cin >> a;
getchar();
cin >> b;
if(a * 60 + b <= 12*60) printf("Only %02d:%02d. Too early to Dang.", a, b);
else{
int num = a - 12 + !!b;
while(num--) cout << "Dang";
}
return 0;
}
L1-019
思路:
按题意进行模拟
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int x, y, n;
cin >> x >> y >> n;
int xx = 0, yy = 0;
while(n--){
int a, b, c, d;
cin >> a >> b >> c >>d;
bool _x = (b == a + c);
bool _y = (d == a + c);
if(_x == 1 && _y == 0) ++xx;
else if(_x == 0 && _y == 1) ++yy;
if(xx > x) cout << "A\n" << yy, exit(0);
if(yy > y) cout << "B\n" << xx, exit(0);
}
}
L1-020
思路:
开个数组映射一下即可;
代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 123456;
bool tag[maxn];
int main(){
int n, k, m, x;
cin >> n;
while(n--){
cin >> k;
for(int i = 0; i < k; i++){
cin >> x;
if(k > 1) tag[x] = true;
}
}
cin >> m;
vector<int> rs;
while(m--){
cin >> x;
if(tag[x] == false) rs.push_back(x), tag[x] = true;
}
if(rs.size()){
printf("%05d", rs[0]);
for(int i = 1; i < rs.size(); i++) printf(" %05d", rs[i]);
}
else puts("No one is handsome");
return 0;
}