日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

noip提高组2000 乘积最大

發(fā)布時間:2025/4/14 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 noip提高组2000 乘积最大 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

原題鏈接:

要寫高精才能過的luogu:https://www.luogu.org/problem/show?pid=1018

用long long就能水過的codevs:http://codevs.cn/problem/1017/

首先先來說DP部分,因為k<=6,因此可以枚舉斷點位置。

sum[i][j]表示原數(shù)的第i位到第j位構(gòu)成的數(shù)字,f[i][l]表示前i個數(shù)字劃分l次時的最大值。

設當前劃分l段,j為斷點位置,對于確定的i與j,斷點到i的值只能為sum[j+1][i],斷點之前劃分的段數(shù)也是確定的,為l-1,斷點之前劃分l-1段能得到的最大值也是在之前已經(jīng)計算出來的,所以將其相乘,檢查能否更新f[i][l]即可。

高精方面,幾乎是與“矩陣取數(shù)游戲”(“矩陣取數(shù)游戲”的博客鏈接:http://www.cnblogs.com/zeroform/p/7697803.html)一樣,采用結(jié)構(gòu)體存儲數(shù)的每一位與數(shù)的位數(shù),不過由于需要計算任意兩位置之間的數(shù)字,壓位不是很方便,所以并沒有壓位(但是在luogu上0ms跑過無壓力)。

?

#include<cstdio> #include<cstring> struct num {int c[205],w; }a; num f[55][55],sum[55][55]; char s[55]; int k; void print(num x) {for(int i=x.w;i>0;i--) printf("%d",x.c[i]); } num getmax(num x,num y) {if(x.w>y.w) return x;if(x.w<y.w) return y;for(int i=x.w;i>0;i--){if(x.c[i]>y.c[i]) return x;if(y.c[i]>x.c[i]) return y;}return x; } num mul(num x,num y) {num t;t.w=1;memset(t.c,0,sizeof(t.c));for(int i=1;i<=x.w;i++){for(int j=1;j<=y.w;j++) t.c[i+j-1]+=x.c[i]*y.c[j];}for(int i=1;i<=x.w+y.w+2;i++){if(t.c[i]>0) t.w=i;if(t.c[i]>9){t.c[i+1]+=t.c[i]/10;t.c[i]%=10;}}return t; } int main() {scanf("%d %d",&a.w,&k);scanf("%s",s);for(int i=1;i<=a.w;i++) a.c[a.w+1-i]=s[i-1]-'0';for(int i=1;i<=a.w;i++){for(int j=i;j<=a.w;j++){sum[i][j].w=j-i+1;int len=0;for(int l=j;l>=i;l--) sum[i][j].c[++len]=s[l-1]-'0';}}for(int i=1;i<=a.w;i++) f[i][0]=sum[1][i];for(int l=1;l<=k;l++){for(int i=l;i<=a.w;i++){for(int j=l;j<i;j++) f[i][l]=getmax(f[i][l],mul(f[j][l-1],sum[j+1][i]));}}print(f[a.w][k]);return 0; }

?

轉(zhuǎn)載于:https://www.cnblogs.com/zeroform/p/7735115.html

總結(jié)

以上是生活随笔為你收集整理的noip提高组2000 乘积最大的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。