目录
A:Spring Couplets
题目描述:
输入描述:
输出描述:
样例及解释:
题意:给定一副对联,判断是否满足平仄规则
1.一条线路的音调模式必须与另一条线路相反。也就是说,如果一个字是平声,那么它在另一行中对应的字必须是斜调,反之亦然。
2.第一行的最后一个字符应该是斜调,这会强制第二行的最后一个字符是平调。
思路:简单模拟题
比赛的时候,翻译比较紧张,翻出来的时候比较慢,也不是很确切,导致签到时间比较短
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define endl "\n"
string s[25], ss[25];
map<char, int> mp;
int main(){
int t;
cin >> t;
mp['1'] = 1;
mp['2'] = 1;
mp['3'] = 2;
mp['4'] = 2;
while(t--){
int n;
cin >> n;
for(int i = 0; i < n; i++){
cin >> s[i];
}
for(int i = 0; i < n; i++){
cin >> ss[i];
}
bool f = 0, ff = 0, fff = 0;
for(int i = 0; i < n; i++){
int len = s[i].length() - 1;
int lens = ss[i].length() - 1;
if(i == n - 1 && mp[s[i][len]] == 2){
ff = 1;
}
if(i == n - 1 && mp[ss[i][lens]] == 1){
fff = 1;
}
if(mp[s[i][len]] == mp[ss[i][lens]]){
f = 1;
}
}
if(!ff || !fff){
f = 1;
}
if(f == 0){
cout << "YES" << endl;
}else{
cout << "NO" << endl;
}
}
return 0;
}
C:Magical Rearrangement
题目描述:
输入描述:
输出描述:
样例:
题意:t组数据,每组数据9个数表示0~9的数量,问这些数可以组成的最小数(相邻数不能相同),不能有前导0(单独一个0不算前导0)
思路:贪心 ,分类讨论。如果数量最多的数是0,那么0的数量大于其他数的数量和就无法构造,
如果这个数不是0,那么大于其他数的数量+1才无法构造。构造的时候,从低位开始枚举,从小数开始枚举,尝试放下这个数,然后判断能否构造成功
比赛的时候就觉得这题是构造题,当时一直往两个变量循环交替构成上想,歪的十分离谱,最后的 时候想到了一位一位尝试,但是没有想到失败的情况怎