建设一个网站需要什么安全设备,动态表情包制作软件app,湖南地图,北京海淀区网站建设Problem - F - Codeforces 翻译#xff1a;
哈尔滨#xff0c;这个名字最初是一个满语单词#xff0c;意思是“晒渔网的地方”#xff0c;从松花江边的一个小农村居民点发展成为中国东北最大的城市之一。1898年#xff0c;随着中国东部铁路的到来#xff0c;这座城市首先…Problem - F - Codeforces 翻译
哈尔滨这个名字最初是一个满语单词意思是“晒渔网的地方”从松花江边的一个小农村居民点发展成为中国东北最大的城市之一。1898年随着中国东部铁路的到来这座城市首先作为一个由来自俄罗斯帝国的绝大多数移民居住的地区而繁荣起来。现在哈尔滨是黑龙江省的省会也是中华人民共和国东北地区最大的城市。它是东北地区重要的政治、经济、科学、文化和通信枢纽也是国家重要的工业基地。
今年一场由东北林业大学主办的CCPC地区比赛将在这个美丽的城市举行。为了确保比赛的成功让全国各地的程序员都能享受比赛比赛的准备工作在比赛开始前几个月就已经开始了。
你是学生志愿者小组的组长负责在活动期间制作装饰校园的横幅。不幸的是你们小组犯了一个错误印错了其中一个横幅。准确地说横幅上没有“哈尔滨”二字。因为你没有时间重新打印唯一的办法就是从一些用过的旧横幅上剪下字母粘贴到打印错误的横幅上。你有六个横幅出于某种原因你必须从每个横幅上剪下一个字母。然后你可以把这六个字母排列粘贴到打印错误的横幅上试着把缺失的单词“harbin”拼出来。然而在你开始切割之前你决定写一个程序来看看这是否可行。
输入 输入包含多个case。输入的第一行包含单个整数(1≤≤50000) 即病例数。
对于每种情况输入包含6行。每行包含一个非空字符串仅由小写英文字母组成描述旧横幅上的字母。
所有情况下所有字符串的总长度不超过2⋅106
输出 对于每种情况如果有可能生成单词“harbin”则打印字符串“Yes”(不带引号)否则打印字符串“No”(不带引号)。
例子 inputCopy 2 欢迎 toparticipate 在 ccpccontest inharbin 10月 收获 属于 忍者 重置 令人惊异的 有趣的 outputCopy 没有 是的
思路刚开始没仔细看以为是简单的随意取拼接以为是暴力。后来又读了下题发现是给6个字符串然后每个字符串只能取一个最后拼成“harbin”。这样的话暴力情况就有很多了。
我是用dfs写的直接暴力搜索就可以因为只有6个字符串。
其他的写法又可以用 全排列函数 暴力写。还有大佬说这是二分图的什么性质也可以用二分图来写。
朴实无华的代码
/*Looking! The blitz loop this planet to search wayOnly my RAILGUN can shoot it 今すぐ身体中を 光の速さで駆け巡った確かな予感掴め 望むものなら残さず輝ける自分らしさで信じてるよ あの日の誓いをこの瞳に光る涙それさえも 強さになるから*/
#include iostream
#include algorithm
#include string.h
#include string
#include math.h
#include stdio.h
#includevector
#includequeue
#includemap
#includeset
#includetuple
#includenumeric
#includestack
using namespace::std;
typedef long long ll;
inline __int128 read(){__int128 x 0, f 1;char ch getchar();while(ch 0 || ch 9){if(ch -)f -1;ch getchar();}while(ch 0 ch 9){x x * 10 ch - 0;ch getchar();}return x * f;
}
inline void print(__int128 x){if(x 0){putchar(-);x -x;}if(x 9)print(x / 10);putchar(x % 10 0);
}
//struct dian{
// double x,y;
//}A,B,C,D,E,F;//点
//cinA.xA.yB.xB.yC.xC.yD.xD.yE.xE.yF.xF.y;
//double len(dian x,dian y){
// return sqrt((x.x-y.x)*(x.x-y.x)(x.y-y.y)*(x.y-y.y));
//}//两点之间距离
//double xj(dian x,dian y,dian z){
// x.x-y.x;
// x.y-y.y;
// z.x-y.x;
// z.y-y.y;
// return x.x*z.y-x.y*z.x;
//}//叉积
int n,t;
string aharbin;
mapchar,intff[7];
int vis[10];
int na0;
void dfs(int x){if (x6) {na1;return;}for (int i0; i6; i) {if (vis[i]) {continue;}if(ff[i][a[x]]){vis[i]1;dfs(x1);vis[i]0;}}
}
void wanyurukong(){string s;for (int i 0; i6; i) {ff[i].clear();}for (int i 0; i6; i) {cins;for (int j 0; js.size(); j) {ff[i][s[j]];}}na0;dfs(0);if (na) {coutYes\n;return;}coutNo\n;
}
int main(){ios::sync_with_stdio(false);cin.tie(); cout.tie();cint;while (t--) {wanyurukong();}//wanyurukongreturn 0;
}