»ªÊ¦Ò»¸½ÖÐOI×é

 ÕÒ»ØÃÜÂë
 Á¢¼´×¢²á
ËÑË÷
²é¿´: 1991|»Ø¸´: 4
´òÓ¡ ÉÏÒ»Ö÷Ìâ ÏÂÒ»Ö÷Ìâ

·ÖÖÆÊé¸å

[¸´ÖÆÁ´½Ó]

61

Ö÷Ìâ

147

Ìû×Ó

563

»ý·Ö

³¬¼¶°æÖ÷

Rank: 8Rank: 8

»ý·Ö
563
Ìøתµ½Ö¸¶¨Â¥²ã
Â¥Ö÷
·¢±íÓÚ 2016-2-1 17:17:49 | Ö»¿´¸Ã×÷Õß »ØÌû½±Àø |µ¹Ðòä¯ÀÀ |ÔĶÁģʽ
±¾Ìû×îºóÓÉ diggersun ÓÚ 2017-10-3 15:06 ±à¼­

ÏÖÔÚÒª°Ñm±¾ÓÐ˳ÐòµÄÊé·Ö¸øk¸øÈ˸´ÖÆ£¨³­Ð´£©£¬Ã¿Ò»¸öÈ˵ij­Ð´Ëٶȶ¼Ò»Ñù£¬Ò»±¾Êé²»ÔÊÐí¸øÁ½¸ö£¨»òÒÔÉÏ£©µÄÈ˳­Ð´£¬·Ö¸øÿһ¸öÈ˵ÄÊ飬±ØÐëÊÇÁ¬ÐøµÄ£¬±ÈÈç²»ÄܰѵÚÒ»¡¢µÚÈý¡¢µÚËı¾Êé¸øͬһ¸öÈ˳­Ð´¡£ÇëÄãÉè¼ÆÒ»ÖÖ·½°¸£¬Ê¹µÃ¸´ÖÆʱ¼ä×î¶Ì¡£¸´ÖÆʱ¼äΪ³­Ð´Ò³Êý×î¶àµÄÈËÓÃÈ¥µÄʱ¼ä¡£
ÊäÈë¸ñʽ£º
µÚÒ»ÐÐÁ½¸öÕûÊým£¬k£»£¨k¡Üm¡Ü500£©
µÚ¶þÐÐm¸öÕûÊý£¬µÚi¸öÕûÊý±íʾµÚi±¾ÊéµÄÒ³Êý¡£
Êä³ö¸ñʽ£º
Ò»¸öÕûÊý³­Ð´Ò³Êý×î¶àµÄÈËÓÃÈ¥µÄʱ¼ä¡£

Ìâ½â£º´ËÌâʱºÜ¾­µäµÄÌâÄ¿£¬ÓÐÁ½ÖÖ¾­µäµÄ½â·¨£¬¶¼ÖµµÃѧϰ£¬Ò»¸öÊǶþ·Ö·¨£¬Ò»¸öÊÇDP·¨¡£

»Ø¸´

ʹÓõÀ¾ß ¾Ù±¨

61

Ö÷Ìâ

147

Ìû×Ó

563

»ý·Ö

³¬¼¶°æÖ÷

Rank: 8Rank: 8

»ý·Ö
563
ɳ·¢
 Â¥Ö÷| ·¢±íÓÚ 2017-10-3 15:09:10 | Ö»¿´¸Ã×÷Õß
¿´µ½´ËÌâµÄ×î´óÖµ×îСÎÒÃÇÒ»°ãÂíÉÏ»áÏëµ½¶þ·Ö·¨£¬¶þ·Ö×ó±ß½çÊÇËùÓÐÊý×ÖµÄËãÊõƽ¾ùÊý£¬Óұ߽ç¿ÉÒÔÉèΪËùÓеÄÊý×ֵĺͣ¬Ã¶¾ÙÖе㣬¿´ÄÜ·ñ·ûºÏÒªÇ󣬷ûºÏµÄ»°£¬ÍùСµÄ·½ÏòÑ°ÕÒ£¬²»·ûºÏµÄ»°£¬Íù´óµÄ·½ÏòÑ°ÕÒ¡£

61

Ö÷Ìâ

147

Ìû×Ó

563

»ý·Ö

³¬¼¶°æÖ÷

Rank: 8Rank: 8

»ý·Ö
563
°åµÊ
 Â¥Ö÷| ·¢±íÓÚ 2017-10-3 15:13:42 | Ö»¿´¸Ã×÷Õß
  1. DPµÄ×ö·¨ÊǵäÐ͵ĵı³°üÎÊÌâ±äÐΣ¬ÈôÉèf[i][j]ΪǰÃæi±¾Êé·Ö³Éj¸öÈ˳­Ê±µÄ×îÉÙʱ¼ä£¬s[i][j]Ϊһ¸ö³­µÚiµ½µÚj±¾ÊéµÄʱ¼ä£¬ÔòתÒÆ·½³Ì¡°
  2. f[i][1]=s[1][i]
  3. f[i][j]=min(f[i-k][j-1]+s[i-k+1][i])
  4. ¿´µÃ³öÕâ¸öתÒÆ·½³ÌºÍ±³°üÎÊÌâºÜÏàËÆ£¬Ì×ÓÃÄǸö³ÌÐòµÄ¿ò¼Ü¼´¿É¡£

  5. // 1 3 7 8 9 2 4 5 6¾Å¸öÊý×Ö°´Ë³Ðò·Ö³ÉÈý¶Ñ£¬Ê¹×î´óµÄÄÇÒ»¶Ñ×îС
  6. #include <iostream>
  7. #include <iomanip>
  8. using namespace std;
  9. int a[10]= {0,1,2,3,4,5,6,7,8,9}; //Ê®¶ÑԭʼÊý¾Ý
  10. int s[10][10]; //s[i][j]±íʾµÚi¶Ñµ½µÚj¶Ñ¹²ÓжàÉÙ¸ö DP³õʼ״̬  ²»»®·ÖµÄÇé¿ö
  11. int f[10][4];  //f[i][j]Ç°i¸öʯͷ±»·Ö³Éj¶ÑµÃ×îСֵ DP״̬
  12. int w[10][4]; //»®·Öµã£¬¾ö²ß·½·¨
  13. int i,j,k,t1,t2,t,m,p;
  14. int main()
  15. {
  16.     for (i=1; i<=9; i++)
  17.     {
  18.         s[i][i]=a[i];
  19.         for (j=i+1; j<=9; j++) s[i][j]=s[i][j-1]+a[j];
  20.     }
  21.     //Êä³ö¼ì²éÏÂ
  22.     cout<<"================s====\n";
  23.     for (i=1; i<=9; i++)
  24.     {
  25.         for (j=1; j<=9; j++) cout<<setw(4)<<s[i][j];
  26.         cout<<endl;
  27.     }

  28.     //³õʼ״̬ ²»»®·ÖµÄ»°¾ÍÊÇÖ±½Ó¼Ó
  29.     for (i=1; i<=9; i++) f[i][1]=s[1][i];

  30.     for (j=2; j<=3; j++) //·Ö³É2¶Ñ¿ªÊ¼    ×¢Òâö¾Ù˳Ðò
  31.         for (i=j; i<=9; i++) //iÏÔȻҪ´óÓÚj
  32.         {
  33.             m=9999;  //×îСֵ³õÖµ
  34.             for (k=j-1; k<=i-1; k++) //ö¾Ù»®·Öµã  ×¢ÒâÈ¡Öµ·¶Î§£¡£¡£¡
  35.             {
  36.                 t1=f[k][j-1];  //Ç°ÃæÒ»¶Î k¸öÊý×Ö·Ö³Éj-1·Ý
  37.                 t2=s[k+1][i]; //ºóÃæÒ»¶Î ×Ô³ÉÒ»¶Î
  38.                 if (t1>t2) t=t1;
  39.                 else t=t2;//È¡×î´óÖµ
  40.                 if (t<m) m=t,p=k;    //¼Ç¼×îСֵºÍλÖÃ
  41.             }
  42.             f[i][j]=m,w[i][j]=p; //DP¸üÐÂÖµ
  43.         }


  44.     //¼ì²éfÊý×é
  45.     cout<<"================f====\n";
  46.     for (j=1; j<=3; j++)
  47.     {
  48.         for (i=1; i<=9; i++) cout<<setw(4)<<f[i][j];
  49.         cout<<endl;
  50.     }

  51.     cout<<f[9][3]<<endl;

  52.     cout<<"================w====\n";
  53.     for (j=1; j<=3; j++)
  54.     {
  55.         for (i=1; i<=9; i++) cout<<setw(4)<<w[i][j];
  56.         cout<<endl;
  57.     }

  58.     cout<<f[9][3]<<endl;

  59. }
¸´ÖÆ´úÂë

738

Ö÷Ìâ

1485

Ìû×Ó

5422

»ý·Ö

¹ÜÀíÔ±

Rank: 9Rank: 9Rank: 9

»ý·Ö
5422
µØ°å
·¢±íÓÚ 2018-4-16 12:58:56 | Ö»¿´¸Ã×÷Õß
ÁíÍâÒ»Öֽⷨ¾ÍÊÇÕûÌå¶þ·Ö£¬ÒòΪÕâÏÔÈ»ÊÇÒ»¸öµ¥µ÷µÝÔöµÄº¯ÊýÄ£ÐÍ£¬Ì×Óöþ·Ö£¬Æðµã£º×ÜÒ³Êý³ýÒÔÈËÊý Öյ㣺×ÜÒ³Êý¡£È»ºóÇóÖе㣬ÅжÏÊÇ·ñ¿ÉÐУ¬¿ÉÒԵĻ°£¬ÍùÏÂÕÒ£¬²»ÐеĻ°£¬ÍùÉÏÕÒ£¬Ö±µ½LRÖصþÕÒ²»µ½ÎªÖ¹¡£

  1. #include<iostream>
  2. using namespace std;
  3. const int mn=510;
  4. int a[mn],p[mn];
  5. int m,k;
  6. int i,l,r,mid,s;
  7. bool check(int mid)
  8. {
  9.     int kk=1,s=0;
  10.     for (int i=1; i<=m; i++)
  11.     {
  12.         s=s+a[i];
  13.         if (s>mid)
  14.         {
  15.             s=a[i];
  16.             kk++;
  17.         }
  18.     }
  19.     return kk<=k;
  20. }
  21. int main()
  22. {
  23.     cin>>m>>k;
  24.     for (int i=1; i<=m; i++)
  25.     {
  26.         cin>>a[i];
  27.         s+=a[i];
  28.     }
  29.     l=s/k;
  30.     r=s;
  31.     bool b=1;
  32.     while (l<r)
  33.     {
  34.         mid=(l+r)/2;
  35.         ///cout<<l<<' '<<r<<endl;

  36.         if (check(mid)) r--;
  37.         else  l++;
  38.     }
  39.     ///cout<<l<<endl;
  40.     s=0;
  41.     int kk=k-1;
  42.     for (i=m; i>=1; i--)
  43.     {
  44.         s=s+a[i];
  45.         if (s>l)
  46.         {
  47.             s=a[i];
  48.             p[kk]=i;
  49.             kk--;
  50.         }

  51.     }
  52.     ///for (i=1;i<=k-1;i++) cout<<p[i]<<' ';cout<<endl;
  53.     cout<<1<<' ';
  54.     for (i=1; i<=k-1; i++) cout<<p[i]<<endl<<p[i]+1<<' ';
  55.     cout<<m;
  56.     return 0;
  57. }
¸´ÖÆ´úÂë


738

Ö÷Ìâ

1485

Ìû×Ó

5422

»ý·Ö

¹ÜÀíÔ±

Rank: 9Rank: 9Rank: 9

»ý·Ö
5422
5#
·¢±íÓÚ 2019-8-9 16:19:38 | Ö»¿´¸Ã×÷Õß
Õâ¸öÌâÄ¿ÀïÃæÓкܶàµÄÒþ»¼£¬´ó¼ÒҪעÒ⣡
ÄúÐèÒªµÇ¼ºó²Å¿ÉÒÔ»ØÌû µÇ¼ | Á¢¼´×¢²á

±¾°æ»ý·Ö¹æÔò

QQ|Archiver|ÊÖ»ú°æ|СºÚÎÝ|·þÎñÖ§³Ö£ºDZ¶¯Á¦|»ªÊ¦Ò»¸½ÖÐOI×é  

GMT+8, 2024-12-26 01:41 , Processed in 0.463710 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí