c语言acm字符串的题,求大神,ACM的一道题,用C语言解答出。求大神帮忙讲解一下。

2021-02-02 06:51:09 字数 3439 阅读 8282

1楼:折柳成萌

#include

#include

#include

int a[10];

char s[1005],tmp[1005],ans[1005];

char* strrev(char *s)return s;

}void sort(int a,int n)}void rotate()

sort(a,9);

}void get(int n)

int main()

len=strlen(s);

for(i=0;i

strrev(tmp);

n=36;

while(n&&tmp[n-1]=='#')n--;

tmp[n]=0;

strcat(ans,tmp);

strcat(ans,"\n");

}puts(ans);}

2楼:丿艾瑞灬莉娅

传输协议与主机定义未知

acm的一道题,用c语言解答出。求大神帮忙讲解一下。

3楼:匿名用户

感觉是用trie树(但其实我也不知道怎么运用),

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

刚才又有了一点想法,就是在建立trie树的时候,当出现一个分岔点,就用数组记录下正在进行建树的字符串还有多少个字符没有添加到树中(因为题目所求的结果就是一个字符串删去后面的一段之后添加另外一个字符串的后缀,即两个字符串会有相同的前缀),同时在建树的过程中每一个节点都记录该字符串还有多少个字符没有添加到树中。这样只要已出现分岔点,就可以将正在建树的字符串的长度加上之前进入了树的字符串在分岔点时剩下的字符个数,就可以得出那两个字符串的结果。用一个变量记录最小值,最后就可以得到一个最小值了。

4楼:匿名用户

设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)由字符串本身长度与两字符串匹配度两个数据影响,暂时没想到好点的优化算法。可以先穷举试试能不能过。

简单的acm题目 - - 。求大神 是c语言

5楼:匿名用户

#include

#include

#include

usingnamespacestd;

structnode

a[30010];

intcmp(nodex,nodey)intmain()

}if(x==0&&a[i].flag==0)}printf("%d\n",sum);

return0;}

6楼:流浪苑墨

#include

int main()

printf("%d\n", count);

}return 0;}

acm的c语言题目,求高手搭救!

7楼:猥琐堂

如果你只输入一个字符串,可以把程序里的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

8楼:匿名用户

#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";}

9楼:匿名用户

#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

这三题c语言关于acm方面的题目,求帮忙解答一下,谢谢哈!!

10楼:袁世平

你这些题数据范围其实都可以改大的==,现在这个范围就比较水了...

其实我第三题没有看清楚==,太模糊了...

第一题可以字符串hash,或者用个map什么的,然后求出每个连续的长度为m的子串,丢到hash里面去看出没出现过就好了。总共最多n个子串嘛...

第二题,n<=1000,那么n^2就可以过了,所以你可以先求一个前缀异或和,然后枚举左右端点l,r,然后[l,r]的异或和=s[r]^s[l-1],然后枚举的复杂度是n^2,所以就可以了...

第三题看不太清楚,最好有个文本啥的...那我就先只答前面两题了...

如果还是没听懂,可以追问。

第一题**:字符串hash的**,其实说实话是可以逐位比较的。

所以这份**感觉有点丑,你应该可以打出更好的:

#include

#include

#include

usingnamespacestd;

typedeflonglongll;

structnodea[110];

intn,m,ans=0;

intrec[110];

charch[110];

boolused[110];

constintmod=1423333;

boolcmp(constnode&a,constnode&b)

intmain()

return0;}

一道acm的题求大神们解答,c语言,谢谢!

11楼:联盟ying联盟

你可以解释一下样例是什么意思,我没参加过acm,但是我的c与c++编程能力还可以,我现在去自习,如果可以,你解释一下,我晚上回来一起研究,如果不愿意就算了,这个样例输出我理解不了啊,谢谢

一道c语言的题目,求大神解答,一道C语言的题目,求大神解答。 5

1楼 云中鹤隐 while scanf d n 是什么 2楼 心河星尘 你忘记将每次循环前将sum清零了。还有格式等等问题。改法是 include int main sum 0 for b 0 b printf 2f n sum n return 0 3楼 匿名用户 include int main...

求C语言大神,帮忙解释一下这道题的选项,刚入门C语言

1楼 匿名用户 a选项2的二进制是010,5的二进制是101,所以2与5的结果是0,即条件为假,所以不能形成死循环 bwhile中是逗号表达式,取最后一个表达式3的值为真,所以是死循环 cd中 0 是字符的ascii值为0的转义字符,所以为假,不构成死循环条件 2楼 天云一号 a2 5 0 所以不会...

一道C语言指针的题目求大神教教,求大神讲解一下这几道c语言指针题目!!!! 10

1楼 璃梦戏子 p 符号就表示指向某地址 a的地址,同理, q b的地址,这是最基础的, 把p q的地址送入fun函数中,fun后面的 就要用到二级指针, p与 p要等价 二级指针可以用int定义,这也是为什么fun函数中语句 a和 t用int定义,前者用于 p与 q的交换,交换 在你所写fun程序...