CF 903 E Swapping Characters 暴力
来源:互联网 发布:phpstudy配置虚拟域名 编辑:程序博客网 时间:2024/06/05 03:28
题意:k个字符串 每个字符串长度都为n.操作:交换某个字符串中任意两个位置的字符.
k<=2500,n<=5000, k*n<=5000.现在每行都要操作1次.问是否能使这k个字符串相同.无解输出-1 否则输出相同的那个字符串.
首先k个串中,任意两个串其字符出现频率都要相同,否则无解.
先算出初始第一个串和其他串得汉明距离
暴力枚举第1个串交换哪个位置.算出新的汉明距离
k<=2500,n<=5000, k*n<=5000.现在每行都要操作1次.问是否能使这k个字符串相同.无解输出-1 否则输出相同的那个字符串.
首先k个串中,任意两个串其字符出现频率都要相同,否则无解.
先算出初始第一个串和其他串得汉明距离
暴力枚举第1个串交换哪个位置.算出新的汉明距离
如果新得汉明距离==0或者2(字符频率相同 可以交换使得距离为0),.O(n^2*k).
#include <bits/stdc++.h>using namespace std;typedef long long ll;const int N=5e3+5,mod=1e9+7;string s[N];int k,n,rep=0,h[N];int main(){ios::sync_with_stdio(false);cin.tie(0);cin>>k>>n;for(int i=0;i<k;i++)cin>>s[i];vector<int> f(26); for(int i=0;i<n;i++)f[s[0][i]-'a']++,rep|=((f[s[0][i]-'a'])>1);bool flag=true;for(int i=1;i<k;i++){vector<int> g(26);for(int j=0;j<n;j++)g[s[i][j]-'a']++;if(f!=g)flag=false; }if(!flag){puts("-1");return 0;}for(int i=1;i<k;i++)for(int j=0;j<n;j++)h[i]+=(s[0][j]!=s[i][j]); int x=-1,y=-1;for(int i=0;i<n;i++){for(int j=i+1;j<n;j++){bool flag=true;for(int p=1;p<k;p++){int cnt=h[p];if(s[0][i]==s[p][i])cnt++;if(s[0][j]==s[p][j])cnt++; if(s[0][i]==s[p][j])cnt--;if(s[0][j]==s[p][i])cnt--;if(!((rep&&cnt==0)||cnt==2))flag=false;}if(flag)x=i,y=j;}}if(x==-1)puts("-1");elseswap(s[0][x],s[0][y]),cout<<s[0]<<endl;return 0;}
阅读全文
0 0
- CF 903 E Swapping Characters 暴力
- Educational Codeforces Round 34 (Rated for Div. 2) E. Swapping Characters(暴力)
- Educational Codeforces Round 34 E Swapping Characters
- CF 552E 暴力
- CF 813E 分块暴力
- cf #308 E. Vanya and Brackets (暴力枚举)
- cf#ecr7- E - Ants in Leaves-暴力+贪心
- cf-e
- cf#312-E-A Simple Task- 线段树+暴力(计数排序)
- cf 435C 暴力
- CF 557C 暴力
- cf 55A(暴力 )
- cf 488 B(暴力)
- e-Government CF 163E
- e-Government CF 163E
- cf 163e e-Government
- CF 208E
- CF #148 DIV2 E
- 软件测试面试题
- tomcat 安装以及配置
- NKOJ 4000 (AHOI 2013)差异(后缀自动机/后缀数组+线段树/单调队列)
- 数据库基础知识回顾
- 查看Oracle的表的索引
- CF 903 E Swapping Characters 暴力
- MySQL 基础——「MySQL架构和SQL解析顺序」
- 浅谈对软件开发的感想
- axis 2调用webservice
- 【TensorFlow】模型持久化tf.train.Saver—上(八)
- 第3章 NVIDIA Jetson TK2优化配置
- Java集合之ConcurrentHashMap源码分析
- Android自适应不同屏幕几种方法
- hdu FatMouse' Trade