worldfinal2017-I題-warshall演算法
題目大意就是給你字元a和b字元a能翻譯成b然後給你兩個字元問是否能夠從字串一翻譯到字串二
題解思路:因為如果a能翻譯到b,b能翻譯到c,a也能翻譯到c所以要滿足傳遞性相當於求矩陣的傳遞閉包利用warshall演算法即可
用陣列模擬矩陣即可
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
using namespace std;
const int mx = 100;
int vis[30][30]; //陣列模擬矩陣
char str1[mx],str2[mx];
int idx(char c){
return c-'a';
}
void warshall(int x,int y){ //warshall演算法實現過程
for(int i = 0; i <= 25; i++)
vis[x][i] += vis[y][i];
}
int main(){
int n,m;
while(scanf("%d%d",&n,&m)!=EOF){
memset(vis,0,sizeof(vis));
for(int i = 1; i <= n; i++){
scanf ("%s%s",str1,str2);
vis[idx(str1[0])][idx(str2[0])] = 1;
}
for(int j = 0; j <= 25; j++)
for(int i = 0; i <= 25; i++)
if(vis[i][j])
warshall(i,j);
for(int i = 1; i <= m; i++){
scanf("%s%s",str1,str2);
int len = strlen(str1);
if(len != strlen(str2)){
puts("no");
continue;
}
int ok = 1;
for(int j = 0; j < len; j++)
if(str1[j] != str2[j] && !vis[idx(str1[j])][idx(str2[j])]){
ok = 0;
break;
}
ok?puts("yes"):puts("no");
}
}
return 0;
}
相關推薦
worldfinal2017-I題-warshall演算法
題目大意就是給你字元a和b字元a能翻譯成b然後給你兩個字元問是否能夠從字串一翻譯到字串二 題解思路:因為如果a能翻譯到b,b能翻譯到c,a也能翻譯到c所以要滿足傳遞性相當於求矩陣的傳遞閉包利用wars
2017Summmer_上海金馬五校 F題,G題,I題,K題
sum 組隊 時序 而且 sizeof bit 屬性排序 print 浪費 以下題目均自己搜 F題 A序列 一開始真的沒懂題目什麽意思,還以為是要連續的子串,結果發現時序列,簡直智障,知道題意之後,好久沒搞LIS,有點忘了,復習一波以後,直接雙向LIS,處理處兩個數組L和
ACM-ICPC國際大學生程序設計競賽北京賽區(2017)網絡賽 i題 Minimum(線段樹)
hellip each pri ger out ont amp define void 描述 You are given a list of integers a0, a1, …, a2^k-1. You need to support two typ
HDU 5886 Tower Defence(2016青島網絡賽 I題,樹的直徑 + DP)
printf true IT spa clear 期望 post const href 題目鏈接 2016 Qingdao Online Problem I 題意 在一棵給定的樹上刪掉一條邊,求剩下兩棵樹的樹的直徑中較長那的那個長度的期望,答案乘上$n-1$後輸出。
2017 ACM/ICPC 新疆賽區 I 題 A Possible Tree 帶權並查集
沒有 cpc ant tar tin 傳送門 表示 每天 blank 傳送門 題意:給定一棵帶權樹的形態, 但是並不知道每天條邊的具體權重. 然後給m個信息, 信息格式為u v val, 表示在樹上u 到 v 的路徑上經過的邊的權重的異或和為val, 問前面最多有多少個
2017 ACM/ICPC 沈陽 I題 Little Boxes
new input 結果 init ++i base r+ pre gin Little boxes on the hillside. Little boxes made of ticky-tacky. Little boxes. Little boxes. Little
Gym 101873D - Pants On Fire - [warshall演算法求傳遞閉包]
題目連結:http://codeforces.com/gym/101873/problem/D 題意: 給出 $n$ 個事實,表述為 "XXX are worse than YYY"。再給出 $m$ 個某人說的話,也是表述為 "XXX are worse than YYY",對於每句話都要
Floyd-Warshall演算法
本次使用方法:引入中轉點k,如果i到k的距離 + k到j的距離 < i到j的距離,更新i到j的最短距離,將每個點做為中轉點更新距離後就可以得到任意兩點最短距離。遞迴解:https://blog.csdn.net/ideaqjx/article/details/78881044 import
SPOJ RPLN (模板題)(ST演算法)【RMQ】
<題目連結> 題目大意:給你一段序列,進行q次區間查詢,每次都輸出詢問區間內的最小值。 解題分析: RMQ模板題,下面用線上演算法——ST演算法求解。不懂ST演算法的可以看這篇部落格 >>> 1 #include <cstdio> 2 #
2016年ACM/ICPC北京賽區 I題(思維 二項式展開)
題目連結:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5698 題意:給你一個只由0~9字元構成的長度為
2016年ACM/ICPC瀋陽賽區 I題(樹形dp+斜率優化)
題目連結:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=5642 題意:給你n個點,n-1條邊的樹。
2018 ACM-ICPC 亞洲區域賽北京現場賽 I題
做法:打表找規律 大數是過不了這個題的(但可以用來打表) 先找k的字首,字首對應邊緣數字是哪個 如果第0位是2-9 對應奇數長度的1-8 第0位為1時,第1位為0時對應奇數長度的9,為1-9時對應偶數長度的1-9,剩下的根據奇偶判斷先從頭到尾再從尾到頭跑一編即可 如100會得到909 100234會得
Gym 101667I Slot Machines (2017-2018 ACM-ICPC, Asia Daejeon Regional Contest I題)
傳送門:http://codeforces.com/gym/101667 Problem I Slot Machines Time Limit: 2 Seconds 題意:陣列a有n個數字,數字範圍0~999999希望求一組最小的k+p,使得任意i>k,都有a[i]=a[i+p],
Dijkstra、Bellman-Ford、SPFA、ASP、Floyd-Warshall 演算法分析
圖論中,用來求最短路的方法有很多,適用範圍和時間複雜度也各不相同。 本文主要介紹的演算法的程式碼主要來源如下: Dijkstra: Algorithms(《演算法概論》)Sanjoy Dasgupta, Christos Papadimitriou, Umesh Vazi
2013南京區域賽 I 題Wall Painting (組合數學+位運算)
題意:給出n個數,求取k個數的異或和是多少,k從1到n,分別輸出n個答案; 思路:由於這個是異或和,那麼我們可以從這裡下手,我們把n個數全都看成二進位制的形式,那麼當前某一位會被計算進總和,當且僅當在所取的k個數中,這一位為1(二進位制形式下)的數量是奇數 那麼最後答案就是求一個
史上最全Java面試266題:演算法+快取+TCP+JVM+搜尋+分散式+資料庫
JAVA基礎 JAVA中的幾種基本資料型別是什麼,各自佔用多少位元組。 String類能被繼承嗎,為什麼。 String,Stringbuffer,StringBuilder的區別。 ArrayList和LinkedList有什麼區別。 講講類的例項化順序,比如父類
2015年ACM/ICPC北京賽區 I題(構造)
題意: 給你一個數n(n<=500),讓你用長度分別為1,2,...,n的折線段填滿w*h的矩陣,其中w*h==n*(n+1)/2。 要求奇數長度的折線有奇數個折點,偶數長度的折線有偶數個折點,第一、二條線段除外。 比賽的時候想了一種不太好想的思路,結
2015年ACM/ICPC瀋陽賽區 I題(二維樹狀陣列)
題意:給你n(n<=1e5)個正整數二元組<a,b> (1<=a,b<=1e5) 給你m(m<=1e5)個正整數三元組<c,d,e>(1<=c,d<=1e3 1<=e<=1e5) 定義新
劍指offer第32題JS演算法:輸入一個整數n,求從1到n這n個整數的十進位制表示中1出現的次數。例如輸入12,從1到12這些整數中包含1的數字有1,10,11和12,1一共出現了5次
題目:輸入一個整數n,求從1到n這n個整數的十進位制表示中1出現的次數。例如輸入12,從1到12這些整數中包含1的數字有1,10,11和12,1一共出現了5次 這是我某一次去朋友公司面試試水時出的面試題,結果給我五分鐘我寫了個for迴圈的方法,被狠狠鄙視/哭笑不得 結果回來後好奇就跟同事
Floyed-Warshall演算法
分類: 多源最短路徑演算法。 作用: 1.求最短路。 2.判斷一張圖中的兩點是否相連。 優點: 實現極為簡單 缺點: 只有資料規模較小且時空複雜度都允許時才可以使用(NOIP上大概不會放出來的吧)。 思想: 3層迴圈,第一層列舉中間點k,第二層與第三層列舉兩個端點i,j。若有di