iT邦幫忙

0

[一天至少一題直到 ICPC 開賽 #016] 解題:Short Sort(12/24)

  • 分享至 

  • xImage
  •  

Short Sort

題目連結點此
抱歉,今天在寫 12/25 的文章時才發現我昨天根本沒有寫XD

今天來補一下

題目意思

a b c三張牌

只能用以下方法交換牌:

選兩張牌,交換位置
問:輸入abc (三個數隨機排列)
能否只用一次就把牌換成abc

Ex:
cba ==>yes

解題

因為只有三種(a、b、c) 在排列

能得知總共只有3!種排法

分別為:

  • abc acb
  • bac bca
  • cab cba

所以將所有的樣本進行分析,得:

  1. abc acb bac cba 能符合

  2. bac cab 不行

  • 故直接用字串分析是否符合
    EX:
    if (string) a== "acb" ==>print:Yes
    else (string) a=="cab" ==>print:No

#include<iostream>
#include<stdio.h>// 沒什麼路用

// 2023 10  5  11:00

using namespace std ;

int main (){

int n;// author : dasabi    
cin>> n; 
string a;

while (n--)// while這裡不會真的要去打屁股
{
    
        
cin>> a;

// 3種字母排列 ,共3!種排法(總計6種排法)  整理如下( /oAo / )

/*
abc   ==> yes 
acb   ==> yes
bac   ==> yes
bca   ==> no
cab   ==> no
cba   ==> yes
*/
 

// 當然 你有本事能和在一個if 也行 ,這樣主要是方便閱讀


if(a=="abc"){// abc 
cout << "yes"<<endl;
}
else if(a=="acb"){//acb
cout<<"yes"<<endl;
}
else if(a=="bac"){//bac
    cout<<"yes"<<endl;
}
else if(a=="cba"){//cba
    cout<<"yes"<<endl;
}

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言