題目:
題意:給定乙個只有0-7數字組成的串。現在要由原串構造出乙個新串,新串的構造方法:相鄰2個位置的數字的差值。若為負數則要加上8,問新構造出來的串的乙個字典序最小同構串是什麼?
思路:就按照題意構造出新串後,然後就是最小表示法了。
#define _crt_secure_no_deprecate#include#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 300000 + 5
;typedef
long
long
intll;
#define inf 0x3f3f3f3f
int minrepresentation(int *s,int
l)
else
else
if (i ==j)
k = 0
; }
}return i < j ?i : j;
}int
str[maxn];
char
s[maxn];
intmain()
else
}int start =minrepresentation(str,len);
for (int i = 0; i < len; i++)
printf("\n
");}
return0;
}
HDU 3374(最小表示法 最大表示法)
hdu3374 題意 給你乙個字串,問這個字串經過移動後的字典序最小的字串的首字元位置和字典序最大的字串的首字元的位置,和能出現多少次最小字典序的字串和最大字典序的字串 題解 利用最小表示法與最大表示法o n 複雜度求出最小字典序和最大字典序串出現位置,然後利用kmp求出next,利用next陣列性...
HDU 3374(最小表示法)
題目鏈結 題意 給幾個字串,求每個字串的最小迴圈表示,最大迴圈表示 輸出序號最小的 以及出現的次數。思路 前面兩個直接用模板可求解。出現次數實際上就是問迴圈節的個數,這時我們可以想到kmp演算法中的nextval陣列。ac include include include includeusing n...
HDU 2609 最小表示法
題意 給定n個迴圈鏈 串 問有多少個本質不同的鏈 串 如果乙個迴圈鏈可以通過找乙個起點使得和其他串相同,那麼就認為這2個鏈是一樣的。就是求不同構的串 思路 對於求同構串可以用最小表示法,然後判斷是否相等就可以知道這2個是否是同構了。判重用的是set define crt secure no depr...