博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CodeForces 903E Swapping Characters
阅读量:6202 次
发布时间:2019-06-21

本文共 1972 字,大约阅读时间需要 6 分钟。

题解:

先算出其他串和第一个串的字母个数是否相同。

再算出其他串和第一个串不同的字母位置个数。

然后枚举第一个串交换的位置。

计算交换之后的不同字母的位置个数。

如果个数为0,则至少有2个相同的字母。

如果个数为2,则说明交换那2个位置之后可以相同。

 

代码:

#include
using namespace std;#define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w",stdout);#define LL long long#define ULL unsigned LL#define fi first#define se second#define pb push_back#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define lch(x) tr[x].son[0]#define rch(x) tr[x].son[1]#define max3(a,b,c) max(a,max(b,c))#define min3(a,b,c) min(a,min(b,c))typedef pair
pll;const int inf = 0x3f3f3f3f;const int _inf = 0xc0c0c0c0;const LL INF = 0x3f3f3f3f3f3f3f3f;const LL _INF = 0xc0c0c0c0c0c0c0c0;const LL mod = (int)1e9+7;const int N = 3e4;string s[N];int dif[N];int num[26], num2[26];int main(){ int k, n; scanf("%d%d", &k, &n); for(int i = 1; i <= k; ++i) cin >> s[i]; int f = 0; for(int i = 0; i < n; ++i) ++num[s[1][i]-'a']; for(int i = 0; i < 26; ++i) f += (num[i] > 1); for(int i = 2; i <= k; ++i){ for(int j = 0; j < n; ++j){ ++num2[s[i][j]-'a']; dif[i] += (s[i][j] != s[1][j]); } for(int j = 0; j < 26; ++j){ if(num[j] != num2[j]){ puts("-1"); return 0; } num2[j] = 0; } } for(int i = 0; i < n; ++i){ for(int j = i+1; j < n; ++j){ int ok = 1; for(int z = 2; z <= k; ++z){ int cnt = dif[z]; cnt -= (s[1][i] != s[z][i]); cnt -= (s[1][j] != s[z][j]); cnt += (s[1][j] != s[z][i]); cnt += (s[1][i] != s[z][j]); if((!cnt && f) || cnt == 2) ok++; } if(ok == k){ swap(s[1][i], s[1][j]); cout << s[1] << endl; return 0; } } } puts("-1"); return 0;}
View Code

 

转载于:https://www.cnblogs.com/MingSD/p/11112274.html

你可能感兴趣的文章
wget参数用法详解
查看>>
使用curl命令查看访问url的时间
查看>>
python添加环境变量
查看>>
DP-01背包 (题)
查看>>
WinForm中跨线程操作控件
查看>>
CODING 敏捷实践完全指南
查看>>
unittest测试框架和测试报告的输出实例(一)
查看>>
下MFC中对象、句柄、ID之间的区别.
查看>>
如何构建Win32汇编的编程环境(ONEPROBLEM个人推荐)
查看>>
Asp.Net MVC 分页、检索、排序整体实现
查看>>
Flymeos插桩适配教程
查看>>
还在用PS磨皮去皱?看看如何用神经网络高度还原你的年轻容貌!
查看>>
大端模式与小端模式、网络字节顺序与主机字节顺序
查看>>
微信支付申请90%的商户都卡在这儿了,申请微信支付,商户功能设置详细说明...
查看>>
制作一款微信表情
查看>>
高仿Instagram 页面效果android特效
查看>>
我的友情链接
查看>>
Juniper 基于路由的×××
查看>>
HDU - 2018 - 母牛的故事(dp)
查看>>
基于matlab的fft变换中参数的设置
查看>>