hdu 6034 Balala Power!
来源:互联网 发布:新浪微博刷粉软件 编辑:程序博客网 时间:2024/05/24 01:48
点击打开链接
题意:
给你26个字母,他们对应的权值分别是0~25;权值由你决定。
现在让你决定他们的权值,让他们的和最大,并把最大的和输出出来。
题解:
题意很简单,思路也很简单,,可是我wa了10来次,,,,,,,
最开始看错题,,以为 |s|‘ 小于等于100000, 那岂不是最长4位数字,美滋滋,
后来已知re 才知道,字符串长度 最长 100000;,,,,,真是日了狗了,,,截至到这里已经错了8、9次了。。
后来老老实实开一个26*100000的结构体,来计算他们的贡献值以及那个字母,排序,,,
又陷入一个什么都对交上去wa的bug,,,,后来发现,记录的字母有个地方写成数字了,。。
哎,还是太菜。
#include <bits/stdc++.h>#define ll long longusing namespace std;const int maxn=1e5+10;const int mod=1e9+7;const ll inf=1e17;struct node{ char c; char v[maxn];}a[27];int v1[30],v2[30];ll fn[maxn];map<char ,int>ma;char s[maxn];bool cmp(node x,node y){ for(int i=maxn-1;i>0;--i){ if(x.v[i]!=y.v[i]) return x.v[i]<y.v[i]; } return x.v[0]<y.v[0];}int main(){ int n,ca=1; int tem=1; fn[0]=1; for(int i=1;i<maxn;++i){ fn[i]=(fn[i-1]*26)%mod; } while(~scanf("%d",&n)){ for(int i=0;i<26;++i) a[i].c=i+'a'; memset(v1,0,sizeof(v1)); ma.clear(); for(int i=0;i<27;++i) memset(a[i].v,0,sizeof(a[i].v)); for(int i=1;i<=n;++i){ scanf("%s",s); int len=strlen(s); if(len>1){ if(!v1[s[0]-'a'+1]) v1[s[0]-'a'+1]=1; } for(int j=0;j<len;++j){ int pos=len-j-1; int x=s[j]-'a'; a[x].v[pos]++; while(a[x].v[pos]==26) { a[x].v[pos]=0; a[x].v[++pos]++; } } } sort(a,a+26,cmp); int f=0,va=1; for(int i=0;i<26;++i){ if(!v1[a[i].c-'a'+1]&&!f){ ma[a[i].c]=f; f=1; continue; } ma[a[i].c]=va++; } ll ans=0; for(int i=0;i<26;++i){ if(ma[a[i].c]==0)continue; ll ret=0; for(int j=0;j<maxn;++j){ if(a[i].v[j]==0) continue; ret=(ret+(ll)ma[a[i].c]*(((ll)a[i].v[j]*fn[j])%mod))%mod; } ans=(ans+ret)%mod; } printf("Case #%d: %lld\n",ca++,ans); } return 0;}
阅读全文
0 0
- HDU-6034 Balala Power!
- [HDU]-6034 Balala Power!
- HDU 6034 Balala Power!
- hdu 6034 Balala Power!
- 【HDU 6034 Balala Power!】
- hdu 6034 Balala Power!
- HDU 6034 Balala Power!
- HDU 6034 Balala Power!
- hdu-6034-Balala Power!
- HDU-6034 Balala Power!
- hdu-6034-Balala Power!
- HDU 6034 Balala Power!
- HDU 6034 Balala Power!
- hdu 6034 Balala Power!
- hdu 6034 Balala Power!(贪心)
- HDU 6034 Balala Power!(进制)
- HDU 6034 Balala Power!【贪心】
- HDU 6034 Balala Power!【贪心】
- Linux id 命令
- Java软件开发实习生面试题总结
- Linux git
- 1401 有趣的旅行
- CodeForces 214A
- hdu 6034 Balala Power!
- 大型网站系统架构实践(二)分布式模块之间的通信
- oracle数据泵
- Java Scanner类
- 目标跟踪算法小结(一)
- 利用prototxt文件绘制网络的结构图
- 实习点滴(6)--关于机器学习的一些有用的东西
- HDU1078:FatMouse and Cheese(记忆化 dp+搜索) (P)
- 区块链 hyperledger fabric1.0 环境搭建