1. 程式人生 > >uva455 Periodic Strings

uva455 Periodic Strings

題目:算出字串最短迴圈節

注意:自己的方法多次WA,最後參考了一下,主要是迴圈節處的迴圈要注意

#include <cstdio>
#include <cstdlib>
#include <cstring>

using namespace std;

int main(int argc, char *argv[])
{
    int N = 0;
    char word[100];
    scanf("%d", &N);
    while (N--)
    {
        scanf("%s", word);
        int len = strlen(word);
        for (int i = 1; i <= len; ++i)
        {
            if (len % i == 0)//如果滿足要求,最後的長度%len=0,所以下一個迴圈節開始應該是len % i == 0 的時候
            {
                int flag = 1;
                for (int j = i; j < len; ++j)
                {
                    if (word[j] != word[j % i]) //非常巧妙,用j%i,可以不斷迴圈,一直到最後,如果都沒有改變flag的狀態
                                                //就是需要的i
                    {
                        flag = 0;
                        break;
                    }
                }
                if (flag)
                {
                    printf("%d\n", i);
                    break;
                }
            }
        }
        if (N != 0)
            printf("\n");
    }
    return 0;
}


相關推薦

uva455 Periodic Strings

題目:算出字串最短迴圈節 注意:自己的方法多次WA,最後參考了一下,主要是迴圈節處的迴圈要注意 #include <cstdio> #include <cstdlib> #in

UVA455 周期串(Periodic Strings

period log gif nbsp 周期 != 字符 ges 題意 題意:求出一個字符串的最小周期 思路:1、枚舉周期內的字符 2、可以用%的方法減少法1的枚舉量。 註意:枚舉包括 長度為strlen(s)的周期 1 #include<cstdio>

習題3-4 週期串(Periodic Strings, UVa455)

如果一個字串可以由某個長度為k的字串重複多次得到,則稱該串以k為週期。例 如,abcabcabcabc以3為週期(注意,它也以6和12為週期)。#include "OJ.h" #include <string.h> /* 功能:計算字串的最小週期。 */ i

Periodic Strings UVA - 455

#include <stdio.h> #include <string.h> int PeriodicStrings(const char *); bool equal(const char, const char); // 判斷兩個字元是否相等 int main()

UVa 455 Periodic Strings(習題3-4)

這幾天一直都沒有寫程式碼,主要是有點事情還有就是忙著複習期末考試,所以說最近一段時間都會很少更新了 這道題的話是比較水的,但是因為我在寫程式碼的時候還有有的地方思路沒有想清楚,重複了幾次才過的 一開始想的太簡單了,直接列舉判斷,後來才慢慢修改,還有就是判斷的後面不要加上分號,有時候不細心

UVA - 455 Periodic Strings【字串】

Periodic Strings  UVA - 455  題目傳送門 題目大意:先輸入一個數字n,在輸入n行字串,對每一個字串輸出其最小的週期長度,每兩個輸出間有一空行。 AC程式碼: #include <cstdio> #include &l

Periodic Strings UVA

#include <stdio.h> #include <string.h> int PeriodicStrings(const char *); bool equal(const char, const char); // 判斷兩個字元是否相等

習題3-4 週期串(Periodic Strings

/*週期串(暴力窮舉法)*/ #include <stdio.h> #include<strings.h> int main() { char s[85]; scanf("%s",s); int a,len=0; //a是週期長度,len是字串長度 le

演算法競賽入門經典(第2版)習題3-4 週期串 Periodic Strings UVa445

這題把我虐哭了。 提交了13次才ac。 演算法本身沒什麼好說的,UVa上html版和pdf版的輸入輸出格式要求不一樣,以html版為準。 而且html版的輸入輸出格式都有點奇葩,不認真看原文細節是ac不了的。 參考了他的例程,我才找到問題的解決辦法。 UVa評測系統中的空

演算法競賽入門經典第三章3-4 Periodic Strings UVA

#include<iostream> #include<string> using namespace std; bool pd(string &s,int k)

習題3-4 週期串(Periodic Strings)

#include <iostream> #include <stdio.h> #include <string.h> using namespace std; int main() { char s[100]; int

uva 455 Periodic Strings(暴力 判斷週期串)

判斷一個字串是否為週期串,如果是的話輸出去最小週期,否則輸出串長。 方法:從s[1]開始判斷是否為週期串,如果是的話得到的下標 i 就是最小週期直接輸出即可。 判斷的方法自然是看從j = i 開始判

Periodic Strings KMP next 陣列 求 迴圈節

455 - Periodic Strings A character string is said to have period k if it can be formed by conca

UVA 455 Periodic Strings (KMP && 暴力陣列)

題意:給你字串,求最小迴圈節的字元個數 分析:看到關於迴圈節的第一反應就是KMP,其實這個題對範圍要求很小,所以可以暴力,把前面的字元與後面的字元進行比較,看是否一樣。最後不要忘記每一個數據後面的空

演算法競賽入門-週期串(Periodic Strings)

1. 題目 今天第三道 如果一個字元可以由某個長度為k的字串重複多次得到,則稱該字串以k為週期。例如,abcabcabc以3為週期(注意,他也以6和12為週期)。 樣例輸入 1 hohoho 樣例輸

UVA 455 Periodic Strings(字串的迴圈節)

UVA 455 Periodic Strings A character stringis said to have periodk if it can be formed by concatenating one or morerepetitions of anot

UVA 455 Periodic Strings

A character string is said to have period k if it can be formed by concatenating one or more repetitions of another string of length k. For example, th

UVa 455 Periodic Strings(週期串)

//求字串的最小週期 //我的思路,找與s[0]相同的字元,然後判定從s[0]到此字元之前的長度能不能作為一個週期 #include <stdio.h> #include <stdlib.h> #include <string.h> in

455(Periodic Strings

題目翻譯:求一個字串的最小週期。 思路:這個題我的思路就是“偏移法”,如果字串是個迴圈體,那麼一定有一段是反覆存在的,例如abAB(大小寫無區別,這裡方便理解),當偏移量為1時對應不相等(a對應b,b

Codeforces 803G Periodic RMQ Problem ST表+動態開節點線段樹

ces 細節 ren urn 區間覆蓋 d+ ins cstring pro 思路: (我也不知道這是不是正解) ST表預處理出來原數列的兩點之間的min 再搞一個動態開節點線段樹 節點記錄ans 和標記 lazy=-1 當前節點的ans可用 lazy=0 沒被