題意
給出數字n,然後給出n個字串,接下來給字母』a』-『z』賦值,使這n個26進製數的和最大,注意不能有前導0;
模擬就行了,不過排序時要雜湊一下
code:
#include
#include
#include
#include
#include
using
namespace
std;
typedef
long
long ll;
const
int mod=1e9+7;
int num[30][100020];
int mark[30];
int poww[100010];
int ans[30];
int len;
bool cmp(int a,int b)
int main()
int n;
int kase=1;
while(scanf("%d",&n)!=eof)}}
for(int i=0;i<26;i++)
}sort(rate,rate+26,cmp);
int zero =-1;
for(int i=0;i<26;i++)
}//coutfor(int i=25;i>=0;i--)
ll res=0;
for(int i=len-1;i>=0;i--)
}res=res%mod;
printf("case #%d: %lld\n",kase++,res);
}return
0;}
HDU 多校聯合第二場
不是在為這次比賽找藉口。我真的想吐嘈一下這道題。尼嘛!明明是狀態dp!非得搞得資料隨便貪心都能過!過你妹啊!埋頭想dp的時候,大約開始十幾分鐘,重新整理了一下。我了個去!快上百了!純屬噁心人嗎?吐嘈完畢 狀態dp 1 n 20,最多20位,完全可以位壓縮。預處理一下hp sum i i 010111...
多校聯合訓練 hdu5791 Two
hdu5791 dp i j 表示的是序列a前i個數字和序列b前j個數字的公共子串行的總個數,那麼的dp公式就可以這麼表示 理解一下此公式若最尾部的a i 和b j 相等的話,那麼單獨的a i 和b j 組成1個相同子串行。同時我們可以想一下之前的前i 1個子序列和前j i個子序列再加上a i 又能...
多校聯合訓練10 HDU 5861 Road
題意 給你n個村莊,每兩個相鄰的村莊有一條路,m個操作,每次都要從乙個村莊走到另外乙個村莊,每一條路每次都有乙個維修的費用,每條路一開始是關閉的,你可以開啟一次,關閉一次。問你最少的費用是多少。解題方法 copy一遍題解 為了使得花費最小,對於一段路來說,它的開啟時間就是最早一次被用到到最後一次被用...