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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

RGB项链问题

發布時間:2024/10/5 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RGB项链问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://oj.acm.zstu.edu.cn/JudgeOnline/problem.php?id=4369

Description

人稱AC之神的QIGe最近一直忙著培養NOI高手,為了鼓勵NOI高手, QiGe做了若干雨花石項鏈,作為對表現優秀的選手的獎勵.他會挑選一個雨花石作為這串項鏈的開始,然后一個接一個連起來,現在他有三種顏色的雨花石,紅(Red)、綠(Green)、藍(Blue),做項鏈的時候他要求每相鄰的2個雨花石不能相同的顏色,盡管最后一步把首尾連接起來的工作QiGe不需要去做,但也必須保證首尾2個雨花石它們是不同顏色。你知道QiGe有多少種串項鏈的方法嗎?

Input

輸入數據包含多個測試實例,每個測試實例占一行,由一個整數N組成,(0<n<=50)。

Output

對于每個測試實例,請輸出全部的滿足要求的排法,每個實例的輸出占一行。

Sample Input

1 2

Sample Output

3 6 #include <bits/stdc++.h> using namespace std; long long a[100]; //涂三色 相鄰和收尾不得相同色; // 思路: 前四個會因為數量不受大規律 // n>=4時,第n-1個與第一個不相同時,則為f(-1) 相同時 :則第n個有兩種不同于第一個的可能此時為f(n-2)2 故的規律 int main() {int n,i,j;a[1]=3;a[2]=6;a[3]=6;a[4]=18;for(i=5;i<=51;i++){a[i]=a[i-1]+2*a[i-2];}while(scanf("%d",&n)!=EOF){printf("%lld\n",a[n]);} return 0; }

進階版

RGBP

http://oj.acm.zstu.edu.cn/JudgeOnline/problem.php?id=4375

Description

人稱AC之神的QIGe最近一直忙著培養NOI高手,為了鼓勵NOI高手, QiGe做了若干雨花石項鏈,作為對表現優秀的選手的獎勵.他會挑選一個雨花石作為這串項鏈的開始,然后一個接一個連起來,現在他有四種顏色的雨花石,紅(Red)、綠(Green)、藍(Blue)、紫色(Pink),做項鏈的時候他要求每相鄰的2個雨花石不能相同的顏色,盡管最后一步把首尾連接起來的工作QiGe不需要去做,但也必須保證它們是不同顏色。你知道QiGe有多少種串項鏈的方法嗎?

Input

輸入數據包含多個測試實例,每個測試實例占一行,由一個整數N組成,(0 < n <= 30)。

Output

對于每個測試實例,請輸出全部的滿足要求的排法,每個實例的輸出占一行。

Sample Input

1 2

Sample Output

4 12

HINT

?

Source

爆搜找規律

#include <bits/stdc++.h> using namespace std;long long a[1007],b[1008]; long long ans=0; void bfs(int k,int c){if(k==c+1){if(b[1]!=b[c]||c==1)ans++;return;}for(int i=1;i<=4;i++){if(k==1||b[k-1]!=i){b[k]=i;bfs(k+1,c); }}}int main() {for(int i=1;i<=31;i++){ans=0;bfs(1,i);printf("%d %lld\n",i , ans);} return 0; }

得到規律f【n】=2*f【n-1】+3*f【n-2】

#include <bits/stdc++.h> using namespace std;long long a[1007],b[1008]; int main() {int n,i,j;a[1]=4;a[2]=12;a[3]=24;a[4]=84;a[5]=240;for(i=6;i<=39;i++){a[i]=2*a[i-1]+3*a[i-2];} while(scanf("%d",&n)!=EOF){printf("%lld\n",a[n]);}return 0; }

?

總結

以上是生活随笔為你收集整理的RGB项链问题的全部內容,希望文章能夠幫你解決所遇到的問題。

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