题解

180 条题解

  • 0
    @ 2008-10-30 19:02:07

    1次ac,爽!

  • 0
    @ 2008-10-28 22:34:58

    代数求值。把a带成一个固定的数求多项式的值,如果值相等,则认定为等价。为了避免代数出现特殊情况,要多带几组数据,且尽量找质数带入。一般情况下,带4组数据,有3组以上相同则可认为是等价。

    我比较懒,只带了两个数,一开始带3和7,竟然错了!后来带了4和7,然后就AC了。

    大家不要学我,还是多劳动一下吧

  • 0
    @ 2008-10-18 21:53:36

    括号不匹配居然也算……

  • 0
    @ 2008-10-10 13:00:28

    怎么就不能多点C的题解啊!全是P的呢??服了!各位C的朋友们多加油呀!

  • 0
    @ 2008-10-07 19:06:10

    终于ac了,一个月前就开始编,为了做p1256又把当初编烦了的程序拾起来,啊……

  • 0
    @ 2008-10-04 19:42:19

    终于AC了....

    这题一年前就觉得不可思议

    今天终于完成了

  • 0
    @ 2008-10-01 14:40:05

    为什么我只是90分?!

    难道真有左右括号不配之说?

  • 0
    @ 2008-09-30 18:29:25

    第五个点的N答案

    (a-6)^10^10

    1

    ((a+6)^2 - 4*a*6))^10^5 +(a -a)^10^10^10^10^10^10

    竟然有左右括号不匹配的也算! 害惨我了。

  • 0
    @ 2008-09-30 15:38:59

    我展开表达式,编得半死。

  • 0
    @ 2008-09-30 14:38:34

    program p_4;

    var

    i,j:integer;

    st:array[0..26] of string;

    answer:string;

    s,n:longint;

    function jisuan2(str:string):longint;

    var

    i,j:integer;

    l:integer;

    str1:string;

    a:array[1..100] of longint;

    t:array[1..1000] of integer;

    k,aa,k1:longint;

    s,tt:longint;

    begin

    l:=length(str);

    j:=1;i:=1;

    while j1) do s:=s-1;

    a:=a*a[tt];

    a[tt]:=0;

    str1:=copy(str1,1,k1-1)+copy(str1,k1+1,length(str1));

    end;

    s:=a[1];

    for i:=1 to l do

    begin

    if str[i]='+' then s:=s+a[t[i]+1];

    if str[i]='-' then s:=s-a[t[i]-1];

    end;

    jisuan2:=s;

    end;

    function jisuan(str2:string):integer;

    var

    i,j:integer;

    l:integer;

    s,t:integer;

    k:integer;

    str1:string;

    begin

    l:=length(str2);

    while pos('(',str2)0 do

    begin

    for i:=1 to l do

    begin

    if str2[i]=')' then begin t:=i-1;break; end;

    if str2[i]='(' then s:=i+1;

    end;

    k:=jisuan2(copy(str2,s,t-s+1));

    str(k,str1);

    str2:=copy(str2,1,s-2)+str1+copy(str2,t+2,length(str2));

    end;

    jisuan:=jisuan2(str2);

    end;

    function chuli(st:string):string;

    var

    i:integer;

    begin

    chuli:=st;

    while pos('a',chuli)0 do

    begin

    i:=pos('a',chuli);

    chuli:=copy(chuli,1,i-1)+'1'+copy(chuli,i+1,length(chuli));

    end;

    end;

    begin

    assign(input,'equal.in');reset(input);

    assign(output,'equal.out');rewrite(output);

    readln(st[0]);

    st[0]:=chuli(st[0]);

    s:=jisuan(st[0]);

    readln(n);

    for i:=1 to n do

    begin

    readln(st[i]);

    st[i]:=chuli(st[i]);

    if jisuan(st[i])=s then answer:=answer+char(64+i);

    end;

    write(answer);

    close(input);

    close(output);

    end.

  • 0
    @ 2008-09-29 15:04:13

    没看见空格……

  • 0
    @ 2008-09-19 13:03:31

    第一次做的时候,不知道没有'/',结果还加上了这个判断,因此没有用mod运算。只得了80分。估计是溢出了,后来发现是没有除法的,就用了mod运算,通过了。

  • 0
    @ 2008-09-16 21:34:48

    这题难度不高 但不代表麻烦度不高

  • 0
    @ 2008-09-09 20:11:02

    表达式求值

  • 0
    @ 2008-09-06 07:25:04

    求求表达式的值,然后取4个数测试,如果通过率在75%以上,则认为该表达式和原表达式相等,则输出。

    求表达式的值最好用中缀式变后缀式的方法去做。

    详细的在我的Blog..

    http://cai0715.sgsg.cn/

    编译通过...

    ├ 测试数据 01:答案正确... 0ms

    ├ 测试数据 02:答案正确... 0ms

    ├ 测试数据 03:答案正确... 0ms

    ├ 测试数据 04:答案正确... 0ms

    ├ 测试数据 05:答案正确... 0ms

    ├ 测试数据 06:答案正确... 0ms

    ├ 测试数据 07:答案正确... 0ms

    ├ 测试数据 08:答案正确... 0ms

    ├ 测试数据 09:答案正确... 0ms

    ├ 测试数据 10:答案正确... 0ms

    ---|---|---|---|---|---|---|---|-

    Accepted 有效得分:100 有效耗时:0ms

  • 0
    @ 2008-08-23 19:19:12

    我的递归方法。详见http://dfs35123.spaces.live.com/blog/cns!A6CB032EC0980F16!335.entry (附测试数据)

  • 0
    @ 2008-08-21 19:07:12

    把表达式展开会累死的,系数都要高精度,不如直接用-5..5的特殊值代入加mod好做

  • 0
    @ 2008-08-21 11:01:13

    标准算法似乎是将每个表达式展开比较是否一致

    但是这个题目更适合用特殊值法求解

    于是这个题目就转化成表达式求值了,比较猛的算法是标号法,即给算式中的每个符号都标号以记录起优先顺序,+-*/乘方这些按数学运算的优先及定义即可,对于括号应该定义为比所有运算都高的优先及,每次遇到'('则将基数+括号的优先及,这样括号里的符号就是基数加本身的优先及,于是,括号内外就有区别了,括号就可以被剥离,剩下只要按优先级运算即可,这里比较方便的方法我推荐使用链表实现,这样可以比较直观的表达两个数运算后成为一个数的过程,另外就是可以用递归,这里注意是逆向思维,每次寻找优先级最低的符号,多个符号优先级相同则找最右边的(因为正常顺序是从左到右),然后分别递归两边的算式,最后算当前符号,具体实现起来有很多技巧

  • 0
    @ 2008-08-21 10:59:22

    你可以在这里写上任何有关于此题的程序代码

    但规定要求不能贴出你的解题思路或者解题方法等

  • 0
    @ 2008-08-12 16:48:46

    还是用实数好

    否则又要重新写MOD,还有指数函数

    用实数直接+-*,直接**(乘方,MATH库里的)

    只不过判断相等的时候稍微写一写

    我的误差判定是0.1%

    过了

信息

ID
1003
难度
7
分类
字符串 点击显示
标签
递交数
7413
已通过
1550
通过率
21%
被复制
50
上传者