QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 4773|回复: 6
打印 上一主题 下一主题

POJ-1006问题

[复制链接]
字体大小: 正常 放大

2

主题

3

听众

16

积分

升级  11.58%

该用户从未签到

跳转到指定楼层
1#
发表于 2010-10-26 23:30 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
POJ-1006& `) z1 v. C4 X4 T

: x9 B( d) n# p) W/ b3 D1 n/ x在本地VC6.0下测试,得出正确结果, 为什么提交后总是Wrong Answer
# m9 A  U- s$ ^& U1 M* \3 w8 G7 p
) s  A2 i! z8 k* r  Z8 _现将代码贴出,请帮忙看看:
2 O* b4 H+ c( k" J$ Q  M7 j6 \
  1. #include <iostream>+ d2 a7 [8 J( A+ b* F( @# e
  2. using namespace std;# S; y- n/ g' p
  3. #define PH      0& C3 H# ]6 f: z) k% }' t
  4. #define EM      11 e. O9 b( m  {. J* \, ^% X
  5. #define IN      2/ R1 o! S* |% p+ r; s
  6. int get_Top(int days, int kind);7 T6 l0 L  u# t, U% l6 h2 g
  7. int triple(int ptop, int etop, int itop, int cur);1 i5 t# h3 P, `* ~/ H0 f$ Q2 I
  8. bool is_Integer(float n);6 c% c* c$ S/ c2 S: K' T8 o& u
  9. int main()
  10. 4 P- M* s% S6 @, X' P9 s  B
  11. {
  12. 3 g1 |% Z$ ]) r0 m  R: f6 j
  13. int ptop,  etop,  itop;
  14. 1 o& o$ l3 G- j4 H. D
  15. int pdays, edays, idays, curdays;
  16. * v: Y; f/ H1 `9 k
  17. int count =0;
  18. * v  J8 a% ]8 ~0 }- a: ^) A
  19. ! V& N+ Y7 i+ M$ ?! n9 j
  20. while(cin >> pdays >> edays >> idays >> curdays)
  21. 2 G% S2 {1 _; R/ H: n6 E3 u
  22. {% H1 Y/ a; ]$ k7 L5 h
  23.   if(pdays==edays&&pdays==idays&&pdays==curdays&&pdays==-1), w0 x9 N) l0 d\\" m
  24.    break;
  25. - t2 M0 l' |# @& E3 @+ |
  26.   count++;( ]% I9 a7 k! }8 d1 y0 x5 G# t
  27.   ptop = get_Top(pdays,PH);1 c+ E  k9 G, I0 O) U+ I
  28.      etop = get_Top(edays,EM);
  29.   ~9 E* t9 C/ [# M* f* Z
  30.      itop = get_Top(idays,IN);2 v7 ]# O+ E+ f$ ^9 }1 p6 y
  31.   cout<<"Case "<<count<<": "<<"the next triple peak occurs in "<<triple(ptop, etop, itop, curdays)<<" days.";( H0 j# q$ V/ W( N. Q6 ?, c
  32. }
  33. 1 \' Y' v( }0 ]! X' z1 b7 Q\\" O' }9 H

  34. & q. ]; a, ^, y3 S, c1 X# k
  35. return 0;
  36. 6 h' O0 c8 m) |; V% S* c. @
  37. }9 x& I* u9 T) J; p% L7 m
  38. int get_Top(int days, int kind)1 t; u2 F. n: J# w/ h
  39. {
  40. $ B8 t! s- x# T: k
  41. switch(kind): }) T, u6 C! U# Y# h5 {# Y; U; o$ e
  42. {
  43. & W. f- e, @' C1 E
  44. case 0:
  45. . q7 l3 M( c9 _* S
  46.   return days%23;
  47. 4 F) W1 S) K! H. o5 Q2 C1 a
  48. case 1:1 e3 f& r+ X. ]
  49.   return days%28;  }% J9 G) J2 ^8 H! C/ a$ v
  50. case 2:  U/ ^+ T- t0 Q
  51.   return days%33;
  52. ; W  I& }# _- M2 w- r4 O! w
  53. }1 m4 \) n' [6 ?: D
  54. return 0;1 c# ^+ l4 k3 q# H& p! r% a
  55. }
  56. ! P  Z8 ^' n0 J( a

  57. / i: f! Q* n9 [7 L  ~5 |
  58. int triple(int ptop, int etop, int itop, int cur)% S+ i: J\\" x  I. R8 f0 k' d
  59. {+ _9 }+ e1 T\\" `
  60. float x, y, z;
  61. + e( r$ P* G7 `+ Z* ^) s* l2 X6 Z) m
  62. int m1   = etop-ptop-5,
  63. \\" g. j) H: ]' F. {
  64.   m2   = itop-etop-5;& ?; d4 ?7 C1 h- D6 s4 c$ B: P/ x
  65. int temp = 0;7 h7 e; d% N% d8 ?% Z% |! E
  66. for(z=2;  (itop+(z-1)*33) <= 21252;  z++); N# E! v) W& d
  67. {* I1 `3 K' l& l1 c3 n
  68.   temp = m2 + 33*z;
  69. 0 d$ R) G9 A6 _
  70.   y = (float)temp/28;
  71. $ {; d7 e2 _7 W, x( ^% l
  72.   x = (float)(m1+temp)/23;
  73. \\" M4 D5 e4 [' d# ^% V7 M4 \- P
  74.   if(x>0 && y>0 && is_Integer(x) && is_Integer(y))9 e6 R( j+ n: Z0 m) m' `
  75.    return itop + (z-1)*33 -cur;; U& b# P1 a: ^8 N  H! `
  76. }# [( j. z; ^8 B
  77. return 0;
  78. 7 f: v( z! V1 A+ K- H
  79. }
  80. + `' x9 y\\" K\\" x4 |
  81. 4 Y\\" E3 `, Y* Z, E6 f% o- G/ K) g5 C8 J
  82. bool is_Integer(float n)
  83. 4 N) q  a& X! t) q' p
  84. {
  85. 8 P+ f9 J2 M, V' T
  86. if( (int)n - n ==0)- m1 [/ V) s! T8 b( u7 W
  87.   return true;+ b5 f3 q* {0 V\\" x\\" [! a% [
  88. else
  89. : {% _5 B\\" c4 i4 @* j9 X& F
  90.   return false;. {4 ~& d9 h5 G
  91. }3 }\\" _( U9 j! a! U

  92. % b+ X) n\\" d+ z2 [: f2 w
4 O' @" s0 C7 h7 }2 h1 B! p
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
ultra1989 实名认证    中国数模人才认证   

20

主题

65

听众

2071

积分

ACMer

升级  2.37%

  • TA的每日心情
    开心
    2015-2-25 23:29
  • 签到天数: 240 天

    [LV.8]以坛为家I

    新人进步奖

    群组Linux推广

    群组Matlab讨论组

    群组数学建模

    本帖最后由 ultra1989 于 2010-10-27 08:54 编辑 ' U1 C3 S% `. g  r0 o" M# M

    % f4 s. D) c/ k9 Y+ ]7 z! [! Z用float可能会有精度问题用中国剩余定理求解( ], _8 z+ b4 h2 H1 D& o9 g
    参考程序:
    0 D" {" P$ a" h) Q+ E9 L. g+ U  x' P% I* {& W8 u) w
    #include<stdio.h>8 ^2 B* y' T, d9 Z
    int main(){ % C7 A7 n; N" e! S+ @: N
       int a,b,c,m,n,i,d=1;' p4 A5 K2 L: r7 p+ \* I1 X
       while(scanf("%d%d%d%d",&a,&b,&c,&m)){
    + |; V2 u7 c: w$ V* [2 F1 H$ W6 f% S/ c
    if(a==-1&&b==-1&&c==-1&&m==-1) break;
    6 W6 @( ?! M' A+ Y, ^1 z+ z: {/ J0 c* A2 o  y& \
    n=0;
    3 q, S6 t# P$ n, Y6 a3 l- I: v
    0 U) O: t+ ]) G, g  J8 Hi=(5544*a+14421*b+1288*c-m+21252)%21252;4 F- t: M% C/ ]7 C( ~

    9 m0 h, m# Z5 w# xif(!i)
    / Y1 ~% g. v3 D- K3 P. I- m2 T# O1 i: f9 r# j
    i=21252;
    ! n, W) h5 y3 i. g  o% O( A3 U$ [  `. U" ?9 B
    printf("Case %d: the next triple peak occurs in %d days.\n",d++,i);5 U2 j5 `3 l& M9 ]1 f( s

    6 _. B: F/ C  U. Q! T1 R4 m   }" V8 `, w+ K: I7 M' v7 n3 H

    " D9 I: c7 ?5 G+ sreturn 0;' k6 F9 c: A4 _/ {1 ]
    }
    $ [) L+ Q$ U$ X2 B& a3 a  |0 O" c& n, c5 a1 o1 H
    Once a ranger, forever a ranger!
    回复

    使用道具 举报

    qbist 实名认证       

    2

    主题

    3

    听众

    304

    积分

    升级  1.33%

    该用户从未签到

    自我介绍
    一个对未来充满信心的阳光型男孩!

    新人进步奖

    回复

    使用道具 举报

    39

    主题

    4

    听众

    2643

    积分

    小草,小草,小。。。。。。草。。。。。。

    升级  21.43%

  • TA的每日心情
    开心
    2016-2-19 16:37
  • 签到天数: 134 天

    [LV.7]常住居民III

    发帖功臣

    群组小草的客厅

    群组数学建模

    群组Matlab讨论组

    群组数学建模培训课堂1

    群组全国大学生数学建模竞

    回复

    使用道具 举报

    2

    主题

    3

    听众

    16

    积分

    升级  11.58%

    该用户从未签到

    回复 ultra1989 的帖子8 h4 ]. O8 C; C" Y, K, b. `4 b5 t
    8 a$ V8 Q7 E- A$ _7 m
    ( q3 y* P8 J! h% N
        确实这道题使用剩余定理解效率太高了! 哈哈! 学习了!  我还没有看过数论方面的书! 以后肯定要看看0 H. O- {, r1 n& d' K

    - T. ^, D; N, i两个程序一对比,一下就体现出数学的强大力量!
    7 |1 j6 K! i& d6 ]% i; t
    回复

    使用道具 举报

    39133120 实名认证       

    10

    主题

    4

    听众

    1045

    积分

  • TA的每日心情
    开心
    2014-9-6 09:56
  • 签到天数: 209 天

    [LV.7]常住居民III

    自我介绍
    希望和大家交流学习!

    群组小草的客厅

    群组数学专业考研加油站

    群组数学建摸协会

    群组数学建模培训课堂2

    回复

    使用道具 举报

    9

    主题

    3

    听众

    142

    积分

    升级  21%

    该用户从未签到

    群组计算机考研

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2026-4-30 08:20 , Processed in 0.445093 second(s), 87 queries .

    回顶部