hdu 6034 贪心模拟 好坑
关键在排序!!!
数组间的排序会超时,所以需要把一个数组映射成一个数字,就可以了
#include <bits/stdc++.h>
using namespace std; typedef long long ll;
const int maxn = 1e5 + 5;
const ll Mod = 1e9 + 7;
int len,ltt[26][maxn];
char s[maxn];
bool apr[26];
ll pow26[maxn]; void init()
{
int len = strlen(s);
for(int i = 0; i < len; i++)
ltt[s[i]-'a'][len - 1 - i]++;
} bool cmp(int A, int B)
{
for (int i = len - 1 ; i >= 0 ; -- i)
{
if (ltt[A][i] != ltt[B][i])
return ltt[A][i] < ltt[B][i];
}
return 0;
} int main()
{
// freopen("in.txt","r",stdin);
int n;
int kase = 1;
pow26[0] = 1;
for(int i = 1; i < maxn; i++)
pow26[i] = pow26[i-1]*26%Mod;
while(~scanf("%d", &n))
{
memset(apr, 0, sizeof(apr));
memset(ltt, 0, sizeof(ltt));
len = 0;
for(int i = 0; i < n; i++)
{
scanf("%s",s);
int len1 = strlen(s);
if(len1 > 1) apr[s[0] - 'a'] = 1;
len = max(len,len1);
init();
} int a[26]; //a数组是ltt数组的映射 //进位
for(int i = 0; i < 26; i++)
{
for(int j = 0; j < len; j++)
{
ltt[i][j+1] += ltt[i][j]/26;
ltt[i][j] %= 26;
}
while(ltt[i][len])
{
ltt[i][len+1] += ltt[i][len]/26;
ltt[i][len++] %= 26;
}
a[i] = i;
}
sort(a, a + 26, cmp);
int num[26] = {0};
if(len > 1)
{
bool flag = 1;
int v = 1;
for(int i = 0; i < 26; i++)
{
if(flag && !apr[a[i]])
{
num[i] = 0;
flag = 0;
}
else num[i] = v++;
}
}
else
{
for(int i = 0; i < 26; i++)
num[i] = i;
}
ll res = 0;
for(int i = 0; i < 26; i++)
for(int j = 0; j < len; j++)
res = (res + num[i]*ltt[a[i]][j]*pow26[j])%Mod;
printf("Case #%d: %I64d\n", kase++, res);
}
return 0;
}
hdu 6034 贪心模拟 好坑的更多相关文章
- hdu 5095 多项式模拟+有坑
http://acm.hdu.edu.cn/showproblem.php?pid=5095 就是把ax^2 + by^2 + cy^2 + dxy + eyz + fzx + gx + hy + i ...
- HDU 6034 贪心
Balala Power! Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- HDU 1528 贪心模拟/二分图
Card Game Cheater Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- HDU 6034 Balala Power!(贪心+排序)
Balala Power! Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) ...
- hdu 4974 贪心
http://acm.hdu.edu.cn/showproblem.php?pid=4974 n个人进行选秀,有一个人做裁判,每次有两人进行对决,裁判可以选择为两人打分,可以同时加上1分,或者单独为一 ...
- HDU 6034 - Balala Power! | 2017 Multi-University Training Contest 1
/* HDU 6034 - Balala Power! [ 大数进位,贪心 ] 题意: 给一组字符串(小写英文字母),将上面的字符串考虑成26进制数,每个字母分配一个权值,问这组数字加起来的和最大是多 ...
- 贪心+模拟 Codeforces Round #288 (Div. 2) C. Anya and Ghosts
题目传送门 /* 贪心 + 模拟:首先,如果蜡烛的燃烧时间小于最少需要点燃的蜡烛数一定是-1(蜡烛是1秒点一支), num[g[i]]记录每个鬼访问时已点燃的蜡烛数,若不够,tmp为还需要的蜡烛数, ...
- 【NOI2013模拟】坑带的树(仙人球的同构+圆方树乱搞+计数+HASH)
[NOI2013模拟]坑带的树 题意: 求\(n\)个点,\(m\)条边的同构仙人球个数. \(n\le 1000\) 这是一道怎么看怎么不可做的题. 这种题,肯定是圆方树啦~ 好,那么首先转为广义圆 ...
- 贪心+模拟 ZOJ 3829 Known Notation
题目传送门 /* 题意:一串字符串,问要最少操作数使得成为合法的后缀表达式 贪心+模拟:数字个数 >= *个数+1 所以若数字少了先补上在前面,然后把不合法的*和最后的数字交换,记录次数 岛娘的 ...
随机推荐
- Windows(受控主机)上配置
Powershell版本要求及配置 windows需要使用Powershell4.0及以上版本,入下图所示,如果不是4.0及以上的需要升级 一.升级Powershell至3.0+ 1. 下载并安装Mi ...
- Scala 中为什么不建议用 return 关键字
在scala中使用 return 的话,编译的时候会提示the latest statement is method is automatically returned, use of th retu ...
- make clean 和 make distclean区别-(转自秋水Leo)
make clean仅仅是清除之前编译的可执行文件及配置文件. 而make distclean要清除所有生成的文件. Makefile 在符合GNU Makefiel惯例的Makefile中,包含了一 ...
- getaddrinfo()函数详解-(转自 cxz2009)
1. 概述IPv4中使用gethostbyname()函数完成主机名到地址解析,这个函数仅仅支持IPv4,且不允许调用者指定所需地址类型的任何信息,返回的结构只包含了用于存储IPv4地址的空间.IPv ...
- xxl-job使用遇到的问题(二)
xxl-job使用遇到的问题(二) 关联阅读 xxl-job使用遇到的问题(一) 1.问题现象 最近有个老定时任务迁移到xxl-job的时候,遇到一个小问题.虽然很快解决,但是还是有必要记录一下~ j ...
- 新晋总监生存指南三——OKR
一.什么是OKR 书接上文:新晋总监生存指南二--建立指标 OKR在我们团队正循环大图中占有很重的分量,好的OKR实践同时也是上文中数据指标实践的案例.反向论述可以认为,数据指标建设混乱的团队很难运用 ...
- 解决Error running 'Tomcat 9': Address localhost:8080 is already in use的问题
在我学习servlet的过程中遇到了tomacat端口8080被占用的情况,所以记录下来,毕竟以后还会碰见这种貌似情况 第一步,打开命令行界面,可快捷键window+R打开输入cmd进入 输入代码:n ...
- [leetcode] 872. 叶子相似的树(周赛)
872. 叶子相似的树 前序遍历,记录叶子节点即可 class Solution { private static String ans = ""; public boolean ...
- 07.ElementUI 2.X 源码学习:源码剖析之工程化(二)
0x.00 前言 项目工程化系列文章链接如下,推荐按照顺序阅读文章 . 1️⃣ 源码剖析之工程化(一):项目概览.package.json.npm script 2️⃣ 源码剖析之工程化(二):项目构 ...
- synchronized使用及java中的原子性问题
1.Synchronized关键字使用 class X { // 修饰非静态方法 synchronized void foo() { // 临界区 } // 修饰静态方法 synchronized s ...