日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1139 First Contact (30 分)【难度: 一般 / 知识点: 模拟】

發布時間:2025/3/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1139 First Contact (30 分)【难度: 一般 / 知识点: 模拟】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


https://pintia.cn/problem-sets/994805342720868352/problems/994805344776077312
難倒是不難,但是有坑,例如-0000,0000故我們還是得用字符串來讀入。
這里的話需要離散化一下,將字符串映射到一個值,這樣的話可以直接用鄰接矩陣來存邊。

#include<bits/stdc++.h> using namespace std; vector<int>boys,girls; unordered_map<string,int>hush; unordered_map<int,string>val;//通過值找到原始的值。 int n,m,k,idx; int g[1005][1005]; int get(string x) {if(hush.count(x)==0) hush[x]=++idx;val[hush[x]]=x;return hush[x]; } void solve(string a,string b) {vector<int>ve1,ve2;vector<pair<int,int>>ans;if(a.size()==5) ve1=girls;else ve1=boys;if(b.size()==5) ve2=girls;else ve2=boys;int a1=get(a),b1=get(b);for(int i=0;i<ve1.size();i++)//暴力枚舉{for(int j=0;j<ve2.size();j++){int x=ve1[i],y=ve2[j];if(x==a1||x==b1||y==a1||y==b1) continue;if(g[a1][x]&&g[x][y]&&g[y][b1])ans.push_back({abs(stoi(val[x])),abs(stoi(val[y]))});}}cout<<ans.size()<<endl;sort(ans.begin(),ans.end());for(int i=0;i<ans.size();i++) printf("%04d %04d\n",ans[i].first,ans[i].second); } int main(void) {cin>>n>>m;for(int i=0;i<m;i++){string a,b; cin>>a>>b;int x=get(a),y=get(b);g[x][y]=g[y][x]=1;if(a.size()==4) boys.push_back(x);else girls.push_back(x);if(b.size()==4) boys.push_back(y);else girls.push_back(y);}sort(boys.begin(),boys.end());boys.erase(unique(boys.begin(), boys.end()), boys.end());//去重sort(girls.begin(),girls.end());girls.erase(unique(girls.begin(), girls.end()), girls.end()); //去重cin>>k;while(k--){string a,b; cin>>a>>b;solve(a,b);}return 0; } 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的1139 First Contact (30 分)【难度: 一般 / 知识点: 模拟】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。