ACM的C語言題目,求高手搭救一道ACM題目,求C語言解決程式碼!

2021-03-08 18:04:30 字數 4030 閱讀 9986

1樓:猥瑣堂

如果你只輸入一個字串,可以把程式裡的while迴圈改了,不過對於acm程式的判定來說,輸入一個也是可以用while來進行輸入的,你可以先提交一下我的**試試。

count函式用來判定字串s是否是迴文,如果是返回1,否則返回0.

#include

#include

#include

int count(char *s)

{int i, j, t;

t = strlen(s);

i=0, j=t-1;

while(i

2樓:匿名使用者

#include

using namespace std;

int test(char d,int k,int i)void main()

if(i%2==0)

n=test(b,(i/2),i-1);

else

n=test(b,(i/2-1),i-1);

if(n==0)

cout<<"n";

else

cout<<"y";}

3樓:匿名使用者

#include(stdio.h)

int str_len(char *p)

return n;

}int main()

{char a[255];

int n,i;

printf("輸入一個字元

串:\n");

gets(a);

n=str_len(a);

for(i=0;i

一道acm題目,求c語言解決**!

4樓:匿名使用者

#include

int main(void)

else

while(ok == 0)

else }

} printf("%ld", n);}

5樓:匿名使用者

#include

#include

int main()

{int n, *remainlist;

int rndstart=1, rndremain=1, i;

char result[40];

remainlist = (int*)malloc(1024*1024);

remainlist[0] = 0;

scanf("%d", &n);

while (1)

{for (i=rndstart; i請儘量多的記憶體, 我這個申請1m記憶體還是可能在一些很小的數(幾萬)上面越界

輸入資料100位? 如果這是原題要求的話,說明有一種特別直接的演算法沒發現。 如果原題沒這要求你自己提的要求的話,只能無視了

6樓:匿名使用者

#include

#define max 10000

//設定查詢範圍

int f(int a)

return b%m;

//將a轉換為二進位制數(當然用十進位制表示)//即得到所需要的用1,0構成的十進位制數

//具體過程可以在紙上模擬一下,相信你可以的}void main()

if(b

printf("%d*%d=%d\n",m,b/m,b);

else

printf("超出尋找範圍!\n");

getchar();

getchar();}

7樓:頂末日神貼專用

你想說的是東北大學最近

舉辦的瀋陽省賽網路賽的e題嗎?

如果是的話,那道題的資料量是n<10000,沒你那麼大即使是10000,上面的幾個暴力的程式也過不了,因為是1000ms的題

這道題有人用bfs過了,應該是逐位的bfs,同時用數學方法進行剪枝說實話,這道題我比賽時也沒ac,我當時暴力做超時,dp又超空間了

acm.c語言上的問題求高手  很簡單入門題,不知道**錯了

8樓:照浙夜

你的程式不符合要求。

輸入(一次性)

2------代表下面輸入兩個數

3------第一個數

4------第二個數

輸出:(一次性)

7-----3*3*3=27%10=7

6-----4*4*4*4%10=6

下面是我用遞迴的方法做的。滿意請採納。**如下:

#include

void digit(int n,int m,int *a);

void main()

}void digit(int n,int m,int *a)if(--n)

}就是把每次的結果存入a陣列中然後依次輸出。

9樓:匿名使用者

你的程式是個死迴圈。eof 不能用在這裡,他是用於檔案讀寫上的。

10樓:

acm通常void main() 改用int main()

且最後返回0 即return 0;

這三題c語言關於acm方面的題目,求幫忙解答一下,謝謝哈!!

11樓:袁世平

你這些題資料範圍其實都可以改大的= =,現在這個範圍就比較水了...

其實我第三題沒有看清楚= =,太模糊了...

第一題可以字串hash,或者用個map什麼的,然後求出每個連續的長度為m的子串,丟到hash裡面去看出沒出現過就好了。總共最多n個子串嘛...

第二題,n<=1000,那麼n^2就可以過了,所以你可以先求一個字首異或和,然後列舉左右端點l,r,然後[l,r]的異或和=s[r]^s[l-1],然後列舉的複雜度是n^2,所以就可以了...

第三題看不太清楚,最好有個文字啥的...那我就先只答前面兩題了...

如果還是沒聽懂,可以追問。

第一題**:字串hash的**,其實說實話是可以逐位比較的。

所以這份**感覺有點醜,你應該可以打出更好的:

#include

#include

#include

using namespace std;

typedef long long ll;

struct nodea[110];

int n,m,ans=0;

int rec[110];

char ch[110];

bool used[110];

const int mod=1423333;

int main()

return 0;}

acm的一道題,用c語言解答出。求大神幫忙講解一下。

12樓:匿名使用者

感覺是用trie樹(但其實我也不知道怎麼運用),

希望能有高手回答你吧。加油,acmer !

剛才又有了一點想法,就是在建立trie樹的時候,當出現一個分岔點,就用陣列記錄下正在進行建樹的字串還有多少個字元沒有新增到樹中(因為題目所求的結果就是一個字串刪去後面的一段之後新增另外一個字串的字尾,即兩個字串會有相同的字首),同時在建樹的過程中每一個節點都記錄該字串還有多少個字元沒有新增到樹中。這樣只要已出現分岔點,就可以將正在建樹的字串的長度加上之前進入了樹的字串在分岔點時剩下的字元個數,就可以得出那兩個字串的結果。用一個變數記錄最小值,最後就可以得到一個最小值了。

13樓:匿名使用者

設sim(ai,aj)為ai與aj相同的字元數(從頭開始匹配) leni為ai長度,lenj為aj長度

那麼f(ai,aj) = ( leni - sim(ai, aj) ) + ( lenj - sim(ai,aj) ) = leni + lenj - 2 * sim(ai, aj)

f(ai, aj)由字串本身長度與兩字串匹配度兩個資料影響,暫時沒想到好點的優化演算法。可以先窮舉試試能不能過。

求詳解c語言題目,求詳解c語言題目

7.簡單,c 8。題目不全 9.b,sizeof不是一個函式,是一個關鍵字。在編譯器會為常量 10.c 2b即2 16 0 65535 11,d,double型別。c語言有隱式型別提升char short int float double,對於型別有疑惑的問題,最簡單的驗證方法是寫一段 用sizeo...

c語言題目求答案解析,C語言題目,,求答案解析。

請參bai考du這zhi 篇回dao答專 屬 求一道c語言題目解答 pow 函式原型是 double pow double,double n pow 1 rate,year 這句裡year 是int 型,改為double 另外輸入函式 將 f 改為 lf 這句話的意思是 你輸入的時候要用這種形式 m...

c語言程式設計題目求大神解答,C語言程式設計題目,求大神解答

include void main max array 0 min array 0 max number 0 min number 0 for i 0 i 10 i 找到最大值和最小值的位置if array i include define len 10 void fun arr int a,int...