1. 程式人生 > 其它 >YbtOJ 字串處理課堂過關 例4 字串環【bfs】

YbtOJ 字串處理課堂過關 例4 字串環【bfs】

技術標籤:題解YbtOJ專項練習題字串字串YbtOJ題解

題目

在這裡插入圖片描述

思路

這道題我們可以直接模擬尋找過程。
先把能合併的生日和名字合併,
然後再把重複人數大於等於二的提取出來,
最後關鍵字排序輸出。

程式碼

#include<algorithm>
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
#include<cmath>
using namespace std;
int n,w,zsl;
struct node
{
	string s;
int sy,sr; }a[10010]; struct node2 { string s2[100]; int sy2,sr2,cc; }a2[10010]; struct node3 { string s3[100]; int sy3,sr3,ccc; }a3[10010]; bool cmp(const node&x,const node&y) { if(x.s.size()==y.s.size()) return x.s<y.s; else return x.s.size()<y.s.size(); } bool cmp2(const node3&
x,const node3&y) { if(x.sy3!=y.sy3) return x.sy3<y.sy3; if(x.sy3==y.sy3) return x.sr3<y.sr3; } int main() { cin>>n; for(int i=1; i<=n; i++) cin>>a[i].s>>a[i].sy>>a[i].sr; sort(a+1,a+1+n,cmp); /*for(int i=1; i<=n; i++) cout<<a[i].s<<" "<<a[i].sy<<" "<<a[i].sr<<endl;*/
for(int i=1; i<=n; i++) 合併相同生日