博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 6034 - Balala Power! | 2017 Multi-University Training Contest 1
阅读量:6577 次
发布时间:2019-06-24

本文共 1855 字,大约阅读时间需要 6 分钟。

/*HDU 6034 - Balala Power!  [  大数进位,贪心 ]题意:	给一组字符串(小写英文字母),将上面的字符串考虑成26进制数,每个字母分配一个权值,问这组数字加起来的和最大是多少?	要求每个数字不能有前导0,即每个字符串首位字符不能赋0分析:	对于每个字符,将每个字符串按位相加,得到这个字符的一个每位上的数量的数组	将其看成一个大数,满26进位,然后排序,从高到低赋值,注意考虑0*/#include 
using namespace std;#define LL long longconst LL MOD = 1000000007;LL mp[150005][26];int n, m;char s[100005];bool notz[26];int val[26], a[26];void up(){ for (int j = 0; j < 26; j++) { for (int i = 0; i < m; i++) { mp[i+1][j] += mp[i][j] / 26; mp[i][j] %= 26; } while (mp[m][j]) { mp[m+1][j] += mp[m][j] / 26; mp[m][j] %= 26; m++; } }}bool cmp(int a, int b) { for (int i = m-1; i >= 0; i--) { if (mp[i][a] != mp[i][b]) return mp[i][a] > mp[i][b]; } return 0;}void solve(){ for (int i = 0; i < 26; i++) a[i] = i; sort(a, a+26, cmp); for (int i = 25; i >= 0; i--) if (!notz[a[i]]) { val[a[i]] = 0; break; } int tmp = 25; for (int i = 0; i < 26; i++) if (val[a[i]] == -1) val[a[i]] = tmp--; }int main(){ int tt = 0; while (~scanf("%d", &n)) { memset(notz, 0, sizeof(notz)); memset(mp, 0, sizeof(mp)); memset(val, -1, sizeof(val)); m = 0; for (int i = 1; i <= n; i++) { scanf("%s", s); int len = strlen(s); if (len != 1) notz[s[0]-'a'] = 1; m = max(m, len); for (int i = 0; i < len; i++) mp[len-i-1][s[i]-'a']++; } up(); solve(); LL ans = 0; for (int i = m-1; i >= 0; i--) { ans = ans * 26 % MOD; for (int j = 0; j < 26; j++) { ans = (ans + (LL)mp[i][j]*val[j] % MOD) % MOD; } } printf("Case #%d: %lld\n", ++tt, ans % MOD); }}

  

转载于:https://www.cnblogs.com/nicetomeetu/p/7247339.html

你可能感兴趣的文章
关于Integer类中parseInt()和valueOf()方法的区别以及int和String类性的转换.以及String类valueOf()方法...
查看>>
ios 控制器的生命周期
查看>>
C#动态代理
查看>>
使用 sessionStorage 创建一个本地存储的 name/value
查看>>
Python笔记8----DataFrame(二维)
查看>>
JavaScript 特殊效果代码
查看>>
【?】codeforces721E Road to Home(DP+单调队列)
查看>>
MySQL 仅保留7天、一个月数据
查看>>
OGG 11g Checkpoint 详解
查看>>
PHP中使用socket通信响应速度慢的原因与解决办法
查看>>
Win7下安装Mysql(解压缩版)
查看>>
UVA 11992 Fast Matrix Operations (降维)
查看>>
暂时不想读研的几点理由
查看>>
增加临时表空间组Oracle11g单实例
查看>>
Diff Two Arrays
查看>>
stark组件(1):动态生成URL
查看>>
169. Majority Element
查看>>
下拉菜单
查看>>
[清华集训2014]玛里苟斯
查看>>
Doctype作用?严格模式与混杂模式如何区分?它们有何意义
查看>>