6034 Balala Power! (17多校)
题目大意:给出的字符串,每个字符建立一种与0-25的对应关系。然后每个字符串看成是一个26进制的数。问能获得的数的总和的最大值。(最后对1e9+7取模)。
题目思考:把每个字符的贡献值看做一个26进制数字,贪心排序后,确保没有前导零。写的要规范点,卡时间。
#include <stdio.h>
#include <string.h>
#include <vector>
#include<math.h>
#include <algorithm>
#include<iostream>
#define INF 0x3f3f3f3f
using namespace std;
const long long mod = +;
const int MAXSIZE = ;
string s[MAXSIZE];
long long var[MAXSIZE];
long long k[MAXSIZE]; struct node
{
int op,id;
int var[MAXSIZE];
bool operator < (const node &a)const
{
for(int i=MAXSIZE-;i>=;i--)
{
if(var[i] != a.var[i])
return var[i] > a.var[i];
}
return ;
}
}p[]; int main()
{
int n,cns=;
while(scanf("%d",&n)!=EOF)
{
for(int i=;i<;i++)
{
p[i].id = i;
p[i].op = ;
for(int j=;j<MAXSIZE;j++)
p[i].var[j]=;
} for(int i=;i<n;i++)
{
cin>>s[i];
int len = s[i].size();
if(len > )
p[s[i][]-'a'].op = ;
for(int j=;j<len;j++)
{
int id = s[i][len-j-] - 'a';
p[id].var[j]++;
}
} for(int i=;i<;i++)
{
for(int j=;j<MAXSIZE;j++)
{
p[i].var[j+] += p[i].var[j]/;
p[i].var[j] = p[i].var[j]%;
}
} sort(p,p+); int v = ;
for(int i=;i<;i++)
var[p[i].id] = v--; int pos = ;
while(pos && p[pos].op)
{
swap(var[p[pos].id],var[p[pos-].id]);
pos--;
} long long ans = ,num; for(int i=;i<n;i++)
{
int len = s[i].size();
num=;
for(int j=;j<len;j++)
{
num = (num* + var[s[i][j]-'a'])%mod;
}
ans = (ans+num)%mod;
}
printf("Case #%d: %lld\n",cns++,ans);
}
return ;
}
6034 Balala Power! (17多校)的更多相关文章
- HDU 6034 - Balala Power! | 2017 Multi-University Training Contest 1
/* HDU 6034 - Balala Power! [ 大数进位,贪心 ] 题意: 给一组字符串(小写英文字母),将上面的字符串考虑成26进制数,每个字母分配一个权值,问这组数字加起来的和最大是多 ...
- 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) ...
- 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!
Balala Power! Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- HDU 6034 Balala Power!【排序/进制思维】
Balala Power![排序/进制思维] Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java ...
- HDU 6034 Balala Power! —— Multi-University Training 1
Talented Mr.Tang has nn strings consisting of only lower case characters. He wants to charge them wi ...
- HDU 6034 Balala Power! (贪心+坑题)
题意:给定一个 n 个字符串,然后问你怎么给 a-z赋值0-25,使得给定的字符串看成26进制得到的和最大,并且不能出现前导0. 析:一个很恶心的题目,细节有点多,首先是思路,给定个字符一个权值,然后 ...
- HDU 6034 17多校1 Balala Power!(思维 排序)
Problem Description Talented Mr.Tang has n strings consisting of only lower case characters. He want ...
随机推荐
- Vuex异步请求数据通过computed计算属性值
问题描述: 使用Vuex管理数据时,在组件内使用$emit分发事件后,获取回来的数据要自动更新到该组件内,需要使用computed来计算更新. 一开始尝试使用赋值给data的方法,后来发现重新发起aj ...
- (注意输入格式)bistuoj(旧)1237 成绩统计
成绩统计 Time Limit(Common/Java):1000MS/3000MS Memory Limit:65536KByteTotal Submit:88 ...
- java 中二维数组的定义和遍历
定义格式 * a 第一种定义格式: * int[][] arr = new int[3][4];// arr里面包含3个数组 每个数组里面有四个元素 * 上面的代码相当于定义了一个3*4的二维数组,即 ...
- mysql批量插入简单测试数据
mysql批量插入简单测试数据 # 参考网址: https://www.2cto.com/database/201703/618280.html 1.mysql创建测试表 CREATE TABLE ` ...
- SQL语句实例集合
SQL语句实例 表操作 例 1 对于表的教学管理数据库中的表 STUDENTS ,可以定义如下: CREATE TABLE STUDENTS (SNO NUMERIC (6, ...
- hibernate validator【原】
hibernate validator 功能 在开发中经常做一些字段校验的功能,比如非空,长度限制,邮箱验证等等,为了省掉这种冗长繁琐的操作,hibernate validator提供了一套精简的注释 ...
- Docker 从入门到放弃(三)镜像使用
当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载. 下面我们来学习: 1.管理和使用本地 Docker ...
- CentOS7 安装 Tomcat8
安装 Java8准备更新软件yum update 如果提示没有 wget 命令,那么必须先安装 wget 如下:yum install wget 安装Tomcat8这里采用离线解压tar.gz的方式安 ...
- windows server 2008r2x64 安全配置
管理工具--本地安全策略 1.帐户策略--密码策略 密码长度最小值:8 强制密码历史:1 2.本地安全策略--安全选项 交互式登录:不显示最后的用户名:已启用
- windows平台在tomcat中启动cas报错解决
windows平台在tomcat中启动cas报错: Caused by: java.lang.UnsatisfiedLinkError: Could not load library. Reasons ...