多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內(nèi)最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > php教程 > 【hdoj 1005】有限狀態(tài)機

【hdoj 1005】有限狀態(tài)機

來源:程序員人生   發(fā)布時間:2015-08-18 08:30:03 閱讀次數(shù):3368次

題目:傳送門

解答:f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mod 7

乍看之下像是遞歸。但是數(shù)據(jù)范圍太大了,1定會超時。可以想到找規(guī)律。

如果將 f(n) 視為1個狀態(tài),那末決定它的是誰?是前兩個狀態(tài)。而且由于 mod 7,所以這個函數(shù)的定義域、值域都是{0,1,2,3,4,5,6}。

這樣,我們可以構造1個 7*7的有限狀態(tài)機(2維數(shù)組),每一個狀態(tài)填寫出現(xiàn)的次數(shù)。當我們行將填寫1個狀態(tài)時發(fā)現(xiàn)里面已出現(xiàn)了次數(shù),當前次數(shù) - 已有次數(shù)就是循環(huán)的范圍。最多計算49次,我們1定會發(fā)現(xiàn)循環(huán)規(guī)律。

這里需要注意的是:

  1. 需要將輸入的 n 減去剛剛發(fā)現(xiàn)規(guī)律時的狀態(tài)機次數(shù)(正式開始循環(huán)),再對循環(huán)范圍取模;
  2. 取模 = 0時,應當加上循環(huán)范圍。例如:1 1 4 2 4 2,如果直接依照取模計算,則 f(4) = 1 而不是 2;
  3. 無需判斷 n 是不是小于循環(huán)范圍,由于有限狀態(tài)機1定停機。即便小于對循環(huán)范圍取模仍得到自己
#include<stdio.h> #include<stdlib.h> #include<string.h> #include<string> #include<iostream> #include<vector> #include<map> using namespace std; int main() { int a, b, i, j; long n; int map[7][7]; while (cin>>a>>b>>n && a && b && n) { if(n == 1 || n == 2) { cout<<"1"<<endl; continue; } memset(map, 0, sizeof(map)); int val = 1; map[1][1] = val; i = 1; j = (a*1 + b*1) % 7; int k = 0; while(!map[i][j]) { val++; map[i][j] = val; int tmp = j; j = (a*j + b*i) % 7; i = tmp; // 過剩操作,狀態(tài)機1定會停機 //num--; //if (num == 0) //{ // cout<<j<<endl; // break; //} } int circle = (val + 1) - map[i][j]; int start = map[i][j]; n = (n - (start - 1)) % circle;; if(n == 0) n = circle; n = n + (start - 1); int ans; for (int k = 0; k < 7; k++) { for (int l = 0; l < 7; l++) { if (n == map[k][l]) { ans = k; } } } cout<<ans<<endl; continue; } return 0; }

生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲欧美国产精品专区久久 | 成人欧美一区二区三区 | 免费一级毛片在播放视频 | 欧美午夜视频在线 | 免费播放观看在线视频 | 免费中文字幕在线国语 | 九色在线 | 偷拍亚洲欧美 | 国产一级做a爰片久久毛片99 | 在线精品国产成人综合第一页 | 午夜dj在线观看免费视频www | 在线精品国产成人综合第一页 | 久爱免费观看在线精品 | 精品一区二区三区中文 | 欧美性受xxxx黑人xxxx | 日韩中文字幕视频在线观看 | 波多野结衣免费视频观看 | 国产a在亚洲线播放 | 边吃奶边添下面就爽 | 亚洲 欧美综合小说区图片区 | 免费视频网站在线观看 | 非洲黑人女bbwxxxx | 综合亚洲欧美 | 国内自拍在线视频高清 | 伊人快播 | 欧美经典剧情系列h版在线观看 | 亚洲成人一区在线 | hd性欧美俱乐部中文 | 亚洲乱码一二三四五六区 | 噜噜噜噜噜视频在线观看 | 伊人精品成人久久综合欧美 | 69视频网址| 精品三区 | 97碰碰碰免费公开在线视频 | 国产精品无码专区在线观看 | 国产精品高清久久久久久久 | xxxxwww日本| 91一区二区三区四区五区 | 欧美一级视频免费看 | 成人在激情在线视频 | 欧美综合网站 |