HDU6034(多校联合B题,25进制模拟)
来源:互联网 发布:阳光网络问政 编辑:程序博客网 时间:2024/06/06 17:12
题意
给出数字n,然后给出n个字符串,接下来给字母’a’-‘z’赋值,使这n个26进制数的和最大,注意不能有前导0;
模拟就行了,不过排序时要哈希一下
code:
#include<cstdio>#include<cstring>#include<string>#include<iostream>#include<algorithm>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){ for(int i=len-1;i>=0;i--) { if(num[a][i]!=num[b][i]) return num[a][i]<num[b][i]; } return 0;}int main(){ //freopen("1002.in ", "r", stdin); //freopen("cuowu .out", "w", stdout); poww[0]=1; for(int i=1;i<100010;i++) { poww[i]=(ll)poww[i-1]*26%mod; //cout<<poww[i]<<endl; } int n; int kase=1; while(scanf("%d",&n)!=EOF) { len=0; int rate[30]; memset(num,0,sizeof(num)); memset(mark,0,sizeof(mark)); memset(ans,0,sizeof(ans)); memset(rate,-1,sizeof(rate)); while(n--) { char a[100010]; cin>>a; if(len<strlen(a)) len=strlen(a); int le=strlen(a); if(le>1) mark[a[0]-'a']=1; for(int i=le-1;i>=0;i--) { num[a[i]-'a'][le-1-i]++; if(num[a[i]-'a'][le-i-1]>25) { num[a[i]-'a'][le-i]+= num[a[i]-'a'][le-i-1]/26; num[a[i]-'a'][le-i-1]%=26; } } } for(int i=0;i<26;i++) { rate[i]=i; while (num[i][len]>0) { num[i][len+1] += num[i][len] / 26; num[i][len++] %= 26; } } sort(rate,rate+26,cmp); int zero =-1; for(int i=0;i<26;i++) { if(mark[rate[i]]==0) { zero=rate[i]; break; } } //cout<<zero<<endl; int two=25; for(int i=25;i>=0;i--) { if(rate[i]==zero) continue; ans[rate[i]]=two--; } ll res=0; for(int i=len-1;i>=0;i--) { for(int j=0;j<26;j++) { res+=(((ll)ans[j]*(ll)num[j][i])%mod*(ll)poww[i])%mod; res=res%mod; } } res=res%mod; printf("Case #%d: %lld\n",kase++,res); } return 0;}
阅读全文
0 0
- HDU6034(多校联合B题,25进制模拟)
- HDU6034【模拟】
- HDU6034-Balala Power-模拟
- 山东多校联合模拟赛 Day1第一题
- [找规律] 多校联合第二场 B题 Buildings
- HDU6034 Balala Power! -2017多校联盟1 第2题
- hdu6034
- hdu6034
- hdu6034
- 山东多校联合模拟赛 Day2
- 【NOIP 模拟题】[山东多校联合模拟赛 day1 T2] 祖先(dp)
- 【NOIP 模拟题】[山东多校联合模拟赛 day1 T1] 矩形计数(暴力)
- 【NOIP 模拟题】[山东多校联合模拟赛 day1 T3] Formula 1 (BFS+并查集)
- 【HDU 4891 多校联合】The Great Pan【模拟】
- 陈老师的多校联合20140818||Uvalive 5683 模拟
- [模拟] 多校联合第三场 painter HDU 5319
- [模拟] 多校联合第四场 HDU5327 Olympad
- 2013多校联合 3 B Reincarnation (hdu 4622)
- PAT乙级 1034. 有理数四则运算(20)
- javascript 判断字符串是否包含某字符串,String对象中查找子字符,indexOf
- Tyvj1952 Easy OSU
- 20170726 jQuery练习题 表格操作练习题
- 大家好
- HDU6034(多校联合B题,25进制模拟)
- QT-继承QWidget 设置样式无效解决
- PAT乙级 1035. 插入与归并(25)--模拟插入归并算法
- 9.内容文字移出
- 使自己的mysql数据库可以被远程登录
- Oracle中的序列
- PAT乙级 1036. 跟奥巴马一起编程(15)
- 虚树学习 codeforces613D
- easyui相关的问题