CF910C
题解:
首先考虑暴力不行
然后采用贪心
按位展开
然后注意不能有前缀0
代码:
#include<bits/stdc++.h>
using namespace std;
long long a[],ans;
int n,flag[],f[];
char s[];
int cmp(int x,int y){return a[x]>a[y];}
int main()
{
scanf("%d",&n);
for (int i=;i<;i++)f[i]=i;
for (int i=;i<=n;i++)
{
scanf("%s",&s);
int k=;
for (int j=strlen(s)-;j>=;j--)a[s[j]-]+=k,k*=;
flag[s[]-]=;
}
sort(f,f+,cmp);
ans=;
for (int i=;i<=;i++)
if (!flag[i])
{
int k=;long long sum=;
for (int j=;j<=;j++)
if (i!=f[j])sum+=k*a[f[j]],k++;
ans=min(sum,ans);
}
printf("%lld",ans);
}
CF910C的更多相关文章
- 洛谷 题解 CF910C 【Minimum Sum】
当时看到这题一脸懵逼,莫名想到了复杂度为O(10000000000*n)的算法,然而肯定会超时(废话) 算法楼上楼下都说的很清楚了 很明显这题是要用每个字母的权值进行排序.然后依次进行赋值. \(\c ...
随机推荐
- genisoimage命令用法
功能说明:建立ISO 9660映像文件. 常用命令:genisoimage -o imagename.iso file 语 法:mkisofs [-adDfhJlLNrRTvz][-print-si ...
- Android系统init进程启动及init.rc全解析
转:https://blog.csdn.net/zhonglunshun/article/details/78615980 服务启动机制system/core/init/init.c文件main函数中 ...
- IP查找所属网段
最近同学接到阿里面试题 package io.guangsoft.analysis; /* 数据文件: 1.1.1.0/24,123 1.1.2.0/28,345 1.2.0.0/16,789 */ ...
- 解读:计数器Counter
Counters: 44 File System Counters FILE: Number of bytes read=655771325 FILE: Number of bytes written ...
- openwrt如何查看当前使用的硬件平台
答:输入cat /tmp/sysinfo/board_name即可获取
- set /p= 详解
在批处理中回显信息有两个命令,echo和set /p=<nul,它们的共同点在于都是对程序执行信息的屏幕输出,区别在于echo是换行输出,而set /p=<nul是不换行追回输出,这样说大 ...
- Linux 网站文件和数据库全量备份 一键脚本(支持FTP,Google Drive)
原文连接: https://teddysun.com/469.html 此文为转载,建议查看秋水大神的原文,排版更容易查看,另外,建议查看脚本源码,方便了解脚本运行过程, 脚本已测试,大神的脚本一如既 ...
- java类库字符串操作
在java类库中,java给我们提供了字符串几个特别的操作,分别是String,Stringbuffer,Stringbuilder等.下面就对这几个类做一个简单的介绍.首先,我们先了解一下Strin ...
- Docker容器可以使用容器平台管理自动重启实现自修复吗?
容器的自修复功能是经常被吹嘘的.因为容器是衣服,人躺下了,衣服也躺下了,容器平台能够马上发现人躺下了,于是可以迅速将人重新唤醒工作. 而虚拟机是房子,人躺下了,房子还站着.因而虚拟机管理平台不知道里面 ...
- 如何查看一个进程打开哪些fd及对应的文件或套接字操作