2017多校1 hdu-Balala Power!
其实这道题的思路挺简单的,就是找在第一位置没有出现过并且权值小的那个字母为0.
把a~z按照权值排序,其实难就难在这里,权值很大我们怎么给他排序。
其实可以开个数组来存他们每位数是多少,然后给他们比个大小就好了。
后面排好序就从25开始依次递减
bool cmp(int a, int b) {
for (int i=ans-1; i>=0; i--) {
if (jishu[a][i]!=jishu[b][i]) {
return jishu[a][i]<jishu[b][i];
}
}
return 0;
}
其实就是用一个数组排序来代替那个数的位置
/* gyt
Live up to every day */
#include<cstdio>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<vector>
#include<stack>
#include<cstring>
#include<queue>
#include<set>
#include<string>
#include<map>
#include <time.h>
#define PI acos(-1)
using namespace std;
typedef long long ll;
typedef double db;
const int maxn = 1e5+;
const ll maxm = 1e7;
const ll mod = ;
const int INF = <<;
const db eps = 1e-;
int vis[];
ll num[maxn];
ll sum[maxn];
ll jishu[][maxn];
ll n,ans,cnt,res,x;
char a[maxn];
int ca=;
void initt() {
num[]=;
for (int i=; i<maxn; i++) {
num[i]=num[i-]*%mod;
}
}
void init() {
ans=,cnt=-,res=,x=;
memset(jishu, , sizeof(jishu));
memset(sum, , sizeof(sum));
memset(vis, , sizeof(vis));
}
bool cmp(int a, int b) {
for (int i=ans-; i>=; i--) {
if (jishu[a][i]!=jishu[b][i]) {
return jishu[a][i]<jishu[b][i];
}
}
return ;
}
void solve() {
initt();
while(scanf("%lld", &n)!=EOF) {
init();
for (int i=; i<n; i++){
scanf("%s", a);
ll len=strlen(a);
if (len>) {
vis[a[]-'a']=;
}
int xx=;
for (int j=len-; j>=; j--) {
int v=a[j]-'a';
jishu[v][xx]++;
sum[v]+=num[xx];
sum[v]%=mod;
int cnt=xx;
xx++;
}
ans=max(ans, len);
}
for(int i=;i<;i++){
for(int j=;j<ans;j++){
jishu[i][j+]+=jishu[i][j]/;
jishu[i][j]%=;
}
while(jishu[i][ans]){
jishu[i][ans+]+=jishu[i][ans]/;
jishu[i][ans++]%=;
}
}
for (int i=; i<; i++) a[i]=i;
sort(a,a+,cmp);;
for (int i=;i<;i++) {
if (!vis[a[i]]) {
cnt=a[i]; break;
}
}
for (int i=; i>=; i--) {
if (a[i]==cnt) continue;
res+=x*sum[a[i]]%mod;
res%=mod;
x--;
}
printf("Case #%d: %lld\n", ca++, res);
} }
int main() {
// freopen("in.txt","r",stdin);
// freopen("kingdom.in","r",stdin);
//freopen("kingdom.out","w",stdout);
int t=;
// scanf("%d", &t);
while(t--) solve();
}
2017多校1 hdu-Balala Power!的更多相关文章
- 2017 多校训练 1002 Balala Power!
Balala Power! Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- 2017 多校3 hdu 6061 RXD and functions
2017 多校3 hdu 6061 RXD and functions(FFT) 题意: 给一个函数\(f(x)=\sum_{i=0}^{n}c_i \cdot x^{i}\) 求\(g(x) = f ...
- 2017 多校2 hdu 6053 TrickGCD
2017 多校2 hdu 6053 TrickGCD 题目: You are given an array \(A\) , and Zhu wants to know there are how ma ...
- 2017 多校5 hdu 6093 Rikka with Number
2017 多校5 Rikka with Number(数学 + 数位dp) 题意: 统计\([L,R]\)内 有多少数字 满足在某个\(d(d>=2)\)进制下是\(d\)的全排列的 \(1 & ...
- 2017 Multi-University Training Contest - Team 1 1002&&HDU 6034 Balala Power!【字符串,贪心+排序】
Balala Power! Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- HDU 6034 - Balala Power! | 2017 Multi-University Training Contest 1
/* HDU 6034 - Balala Power! [ 大数进位,贪心 ] 题意: 给一组字符串(小写英文字母),将上面的字符串考虑成26进制数,每个字母分配一个权值,问这组数字加起来的和最大是多 ...
- HDU 6034 17多校1 Balala Power!(思维 排序)
Problem Description Talented Mr.Tang has n strings consisting of only lower case characters. He want ...
- 2017ACM暑期多校联合训练 - Team 1 1002 HDU 6034 Balala Power! (字符串处理)
题目链接 Problem Description Talented Mr.Tang has n strings consisting of only lower case characters. He ...
- HDU 6034 Balala Power!(贪心+排序)
Balala Power! Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- hdu 6034 B - Balala Power! 贪心
B - Balala Power! 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=6034 题面描述 Talented Mr.Tang has n st ...
随机推荐
- zabbix 自定义监控 排除带报错提示
UserParameter=lq_data_sqoop,/usr/local/bin/sqoop.sh 2>/dev/null |awk '{print $2}' 注意:2>/dev/n ...
- DES算法实现(C++版)
#include "memory.h" #include "stdio.h" enum {encrypt,decrypt};//ENCRYPT:加密,DECRY ...
- 明明白白你的Linux服务器——日志篇
日志对于安全来说,非常重要,它记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹.日志主要的功能有:审计和监测.他还可以实时的监测系统状态,监测和追踪 ...
- vue axios请求/响应拦截器
// main.js中配置 // 引入 axios import Axios from 'axios' // 这时候如果在其它的组件中,是无法使用 axios 命令的. // 但如果将 axios 改 ...
- 【linux命令总结】——后续用到的内容持续补充和更新
比如说:某个文件是go文件,名字叫做 Hello.go 1.通过后台运行某个程序,将结果输出到某个文件, 如果是直接运行go程序:go run Hello.go 后台运行:nohup go run H ...
- iOS开发时使用的bundle路径
bundle是一个目录,其中包含了程序会使用到的资源. 这些资源包含了如图像,声音,编译好的代码,nib文件(用户也会把bundle称为plug-in). 对应bundle,cocoa提供了类NSBu ...
- stark组件之分页【模仿Django的admin】
我们的stark组件用的我们的分页组件,没有重新写 下面直接看下分页的代码 class page_helper(): def __init__(self, count, current_page, p ...
- java 基础之--nio 网络编程
在传统的Java 网络编程中,对于客户端的每次连接,对于服务器来说,都要创建一个新的线程与客户端进行通讯,这种频繁的线程的创建,对于服务器来说,是一种巨大的损耗,在Java 1.4 引入Java ni ...
- 基于java NIO 的服务端与客户端代码
在对java NIO selector 与 Buffer Channel 有一定的了解之后,我们进行编写java nio 实现的 客户端与服务端例子: 服务端: public class NIOC ...
- spring boot 2.0 与FASTDFS进行整合
只支持在spring-boot 2.0以及以上版本中使用 1.pom.xml 里引入FASTDFS的依赖,toobato与fastdfs作者一起,将fastdfs的功能进行了重构与简化 <!-- ...