竹園論壇

標題: [求救] UVA 10789 [打印本頁]

作者: bac    時間: 2014-8-13 00:52
標題: [求救] UVA 10789
本帖最後由 bac 於 2014-8-13 16:23 編輯

題目

我的做法是
先建質數表,再用upper_bound找出有多少個,然後檢察是否為質數
不知道為什麼一直WA又找不出錯的測資
求解

[C++] 純文本查看 復制代碼
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>

using namespace std;


bool nprime[4096] = {false};


inline void init_prime()
{
        for(int i = 3 ; i < 64 ; i++)
                if(!nprime)
                        for(int k = 4095/i , j = i*k ; k>=i ; k--, j-=i)
                                if(!nprime[k])
                                        nprime[j] = true;
        for(int i = 4 ; i < 2500 ; i+=2)
                nprime = true;
        nprime[1] = true;
}

int main()
{
        //init
        int time;
        char str[2015];
        
        init_prime();
        

        //process
        scanf("%d",&time);
        for(int t = 1 ; t <= time ; t++)
        {        
                bool empty = true;
        
                scanf("%s",str);
                int len = strlen(str);
                str[len] = 127;
                printf("Case %d: ", t);
                for(int i = 0 ; i < len ; )
                {
                        int j = upper_bound(str, str+len, str) - str;
                //        printf("\n%c : %d\n", str ,j-i);
                //        cout << "i=" << i << ", j=" << j << endl;
                        if(!nprime[j-i])
                        {
                                empty = false;
                                putchar(str);
                        }
                        i = j;
                }
               
                if(empty)
                        printf("empty");
                putchar('\n');
        }
        
        return 0;
}




作者: tntchn    時間: 2014-8-13 03:27
我打 ccbbaa 之頪的就會顯示 empty
題目似乎沒有說不能從較後面的英文字母打回前面?




歡迎光臨 竹園論壇 (http://forum.tfcis.org/) Powered by Discuz! X3.2