POJ2513-Colored Sticks

/*
思路:類似圖論中“一筆畫”問題,兩根木棒的相連接的端點是一樣的顏色,(a,b)--(b,c)--(c, d)....
方法:trie樹+并查集, 利用trie樹建立字符串和某一個節點的映射,并將這些和字符串構成映射的節點建成圖, 用并查集判斷圖的連通
*/
1 #include<iostream> 2 #include<cstdio>3 #include<cstring>4 #define N 2500005*25 using namespace std;6 int f[N];7 int indgr[N];8 int trie[N][26];9 int nodeNum, pre, cnt, oddDgr, root; 10 int getFather(int x)//并查集尋找父親節點,壓縮路徑 11 { 12 return x == f[x] ? x : f[x]=getFather(f[x]); 13 } 14 15 void Union(int a, int b)//并查集的合并 16 { 17 int fa=getFather(a), fb=getFather(b); 18 if(fa!=fb) 19 f[fa]=fb; 20 } 21 22 int main() 23 { 24 char color[15]; 25 int i; 26 for(i=0; i<N; ++i) 27 f[i]=i; 28 while(scanf("%s", color)!=EOF) 29 { 30 cnt++; 31 int cur=0, L=strlen(color); 32 for(i=0; i<L; ++i) 33 { 34 int k=color[i]-'a'; 35     if(!trie[cur][k]) 36 trie[cur][k]=++nodeNum; 37    cur=trie[cur][k]; 38 } 39    ++indgr[cur]; 40 if(cnt%2) pre=cur; 41 else 42     Union(pre, cur); 43  } 44 for(i=0; i<=nodeNum; ++i) 45 { 46 if(indgr[i]&1) ++oddDgr; 47 if(indgr[i] && f[i]==i) ++root; 48 if(oddDgr>2 || root>1) break; 49 } 50 if((oddDgr==0 || oddDgr==2) && root==1 || oddDgr==0 && root==0)//注意空樹的情況下是輸出Impossible, 開始就是錯在了這里 51 printf("Possible\n"); 52 else printf("Impossible\n"); 53 return 0; 54 }

  

轉載于:https://www.cnblogs.com/hujunzheng/p/3775673.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532006.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532006.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532006.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

php windows共享內存,給PHP開啟shmop擴展實現共享內存

這篇文章主要介紹了關于給PHP開啟shmop擴展實現共享內存&#xff0c;有著一定的參考價值&#xff0c;現在分享給大家&#xff0c;有需要的朋友可以參考一下在項目開發中&#xff0c;想要實現PHP多個進程之間共享數據的功能&#xff0c;讓客戶端連接能夠共享一個狀態&#xff0c…

導入ansys的實體怎么進行parameter_ANSYS在線纜線束設計中的仿真應用

ANSYS采用ANSYS Maxwell、Q3D、Twin Builder等電磁仿真軟件&#xff0c;從線纜線束設計、寄生參數RLCG提取、到系統電磁兼容提供了全面仿真分析。創建模型ANSYS在Maxwell軟件基礎上提出針對用戶定制化的“線纜線束設計工具包”&#xff0c;幫助客戶參數化建立特定幾何模型&…

怎么做95置信區間圖_這種動態的OD圖怎么做?簡單3步快速搞定

之前在視頻號中發過一個單車的出行數據可視化效果。動態展示了某天單車不同時段的運行情況&#xff0c;這種動態的OD可視化效果是如何制作的呢&#xff1f;使用的是kepler.gl進行制作的&#xff0c;其實非常簡單&#xff0c;3步即可快速搞定。一、數據軟件準備1、軟件制作這種動…

php抖音跳轉地址,PHP如何實現解析抖音無水印視頻

問題來源很多時候你在douyin里看到了一個短視頻&#xff0c;想復制下來自己編輯文字來發布&#xff0c;可是視頻里的水印卻是原者的。這個時候你想把水印去掉&#xff0c;你要如何做呢&#xff1f;這里提供PHP實現去除水印的主要方法&#xff0c;其實很簡單。使用方法&#xff…

php 分割二維數組,拆分二維數組 php

把以下數組拆分&#xff1a;{"errcode": 0,"msg": "成功","data": {"list": [{"ticket_no": "1","options": ["周四301","周四302","周四303"],"play_ty…

Dijkstra算法優先隊列實現與Bellman_Ford隊列實現的理解

1 /*2 Dijkstra算法用優先隊列來實現&#xff0c;實現了每一條邊最多遍歷一次。 要知道&#xff0c;我們從隊列頭部找到的都是到3 已經"建好樹"的最短距離以及該節點編號, 并由該節點去更新 樹根 到其他點&#xff08;被更新的節點可以在隊列中4 &#xff0c;也可以是…

php times33,PHP Hash算法:Times33算法代碼實例

最近看書&#xff0c;里面提到了一些Hash算法。比較有印象的是Times33&#xff0c;當時理解不是很透測&#xff0c;今天寫了段程序來驗證了一下。先上代碼&#xff1a;復制代碼 代碼如下:/*** CRC32 Hash function* param $str* return int*/function hash32($str){return crc3…

撿到vivo手機怎么清除賬號_為什么現在買手機,很少會去考慮OPPO和vivo呢?看一下老板怎么說...

不知道大家是否注意到&#xff0c;近年來OPPO和vivo的報道越來越少&#xff0c;而華為、榮耀和小米出現的頻率越來越高。此外&#xff0c;網絡上還有另外一個聲音&#xff0c;一個專業的機友朋友說&#xff0c;寧可選擇小米、OPPO和vivo&#xff0c;為什么熟悉自己手機的人不考…

php分析圖片中水印的位置,關于ThinkPHP打水印及設置水印位置的分析

這篇文章主要介紹了ThinkPHP打水印及設置水印位置的方法,結合實例形式分析了thinkPHP打印與設置水印的相關操作步驟與具體實現技巧,需要的朋友可以參考下本文實例講述了ThinkPHP打水印及設置水印位置的方法。分享給大家供大家參考&#xff0c;具體如下&#xff1a;最近在用Thin…

華為交換機命令_華為交換機常用命令

華為交換機常用命令&#xff1a;1、display current-configuration 顯示當前配置2、display interface GigabitEthernet 1/1/4 顯示接口信息3、display packet-filter interface GigabitEthernet 1/1/4 顯示接口acl應用信息4、display acl all 顯示所有acl設置 3900系列交換機5…

java中兩種添加監聽器的策略

/*第一種&#xff1a;將事件的處理委托給其他對象&#xff0c;下面的例子是委托給了MyListener&#xff08;implements ActionListener&#xff09;*/ 1 import java.applet.Applet;2 import java.awt.event.*;3 import java.awt.*;4 public class ChangeColor extends Applet{…

php dos命令用不了,windows下如何使用DOS命令強制復制文件

有的時候&#xff0c;我們可能需要替換某些目錄下的一些文件&#xff0c;手動去一個個目錄找的話&#xff0c;就會比較麻煩&#xff0c;這時候&#xff0c;就是我們程序員上場的時候了&#xff0c;程序雖然好寫&#xff0c;但是dos命令并不是每個人都玩的轉的&#xff0c;而且最…

java的棧圖形演示

1 import java.awt.*;2 import javax.swing.*;3 import java.awt.event.*;4 /*5 指示發生了組件定義的動作的語義事件。當特定于組件的動作&#xff08;比如被按下&#xff09;發生時&#xff0c;由組件&#xff08;比如 Button&#xff09;生成此高級別事件。6 事件被傳遞給每…

python播放本地視頻_python opencv 讀取本地視頻文件 修改ffmpeg的方法

Python opencv 讀取視頻的三種情況&#xff1a;情況一&#xff1a;通過攝像頭采集視頻情況二&#xff1a;通過本地視頻文件獲取視頻情況三&#xff1a;通過攝像頭錄制視頻&#xff0c;再讀取錄制的視頻攝像頭采集、本地視頻文件的讀取、寫視頻文件&#xff0c;網上都有代碼。我…

kali里PHP文件502錯誤,解決Linux Kali iptables開放22端口失敗等一系列問題

這篇文章是針對2020年下載安裝的kali系統碰到的關于 iptables開放22端口失敗等一系列問題的解決辦法&#xff0c;如果是其它系統&#xff0c;可以借鑒一下思路。各種報錯&#xff1a;# sudo systemctl start iptablesFailed to start iptables.service: Unit iptables.service …

中綴試轉后綴試及前綴試并計算其結果

1 /*2 參考大神nb的代碼&#xff0c;感覺思路不錯&#xff01;終于搞明白了&#xff01;一開始不明白在計算表達式的時候&#xff0c;利用棧到底做了什么&#xff01;現在感覺我們利用棧就是模擬我們書面上計算表達式&#xff0c;3 將優先級高的運算先計算出來&…

ros如何編譯python文件_Python為ROS編寫一個簡單的發布者和訂閱者

Python為ROS編寫一個簡單的發布者和訂閱者1.創建工作空間1.1建立文件夾hello_rospy,再在該目錄下建立子目錄src,并創建工作空間mkdir -p ~/hello_rospy/srccd ~/hello_rospy/srccatkin_init_workspace1.2 編譯cd ~/hello_rospy/catkin_make1.3設置運行環境echo "source ~/…

php整站防注入程序,php通用防注入程序 推薦

function jk1986_checksql(){$bad_str "and|select|update|‘|delete|insert|*";$bad_Array explode("|",$bad_str);/** 過濾Get參數 **/foreach ($bad_Array as $bad_a){foreach ($_GET as $g){if (substr_count(strtolower($g),$bad_a) > 0){echo &…

表達式建樹

//用數組實現樹 1 #include<iostream> 2 #include<ctype.h>3 #include<cstring>4 #define N 100005 #define optd 16 #define optr 27 using namespace std;8 int treeL[N], treeR[N];9 class node 10 { 11 public: 12 int flag;//區分當前節點是操作符還…

python label標簽的作用_label標簽的作用是什么?

label標簽的作用是為鼠標用戶改進了可用性&#xff0c;當用戶點擊【】標簽中的文本時&#xff0c;瀏覽器就會自動將焦點轉到和該標簽相關聯的控件上。label標簽的作用&#xff1a;一、標簽定義及用法在html中&#xff0c;標簽通常和標簽一起使用&#xff0c;標簽為input元素定義…