1. 程式人生 > >worldfinal2017-I題-warshall演算法

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,GI,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第32JS演算法:輸入一個整數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