codeforces802H Fake News (medium) -- 构造
来源:互联网 发布:购网络机顶盒 编辑:程序博客网 时间:2024/06/05 19:12
题目大意:
构造两个字符串
其中
如果能做到从出现次数为k的方案转化到
在构造过程中保证使
k→2k+1 : 令s′=pxuxx ,p′=px ,其中x 为未出现过的字符。k→2k+2 : 令s′=pxxuxx ,p′=px ,其中x 为未出现过的字符。
递归构造就可以了。
代码:
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;struct Node{ Node(){} Node(string s,string p):s(s),p(p){} string s,p;}a;int i,j,k,n,m;char c;inline Node Solve(int n){ Node Tmp; if(n==1){ c='a'; return Node("a","a"); } if(n==2){ c='b'; return Node("abb","ab"); } if(n%2==0){ Tmp=Solve(n/2-1); c++; Tmp.s.insert((int)Tmp.p.size(),string(2,c)); Tmp.s+=string(2,c); Tmp.p+=string(1,c); return Tmp; } Tmp=Solve(n/2); c++; Tmp.s.insert((int)Tmp.p.size(),string(1,c)); Tmp.s+=string(2,c); Tmp.p+=string(1,c); return Tmp;}int main(){ scanf("%d",&n); a=Solve(n); for(i=0;i<a.s.size();i++)putchar(a.s[i]);putchar(' '); for(i=0;i<a.p.size();i++)putchar(a.p[i]);puts(""); return 0;}
阅读全文
0 0
- codeforces802H Fake News (medium) -- 构造
- [构造][杂题]Helvetic Coding Contest 2017. H Fake News && CODE FESTIVAL 2016 Grand Final . G FESTIVAL
- [Codeforces][后缀自动机]Helvetic Coding Contest 2017 . I Fake News (hard)
- news
- news
- news
- Medium
- Medium
- Fake Glasses
- fake email
- fake wifi
- Fake Numbers
- Fake Objects
- NEWS(搜索)
- News Digest
- News Digest
- Dinamica news
- NFL NEWS
- 为什么Java中字符串被设计成不可变的?
- pc端表格分页的简单实现
- JavaScript 创建对象
- Docker Or PaaS
- Axure学习及实战整理--之交互
- codeforces802H Fake News (medium) -- 构造
- 如何用机器学习对文本分类
- 第八届“蓝桥杯”赛后总结
- Problem A: 时间类的拷贝和整体读写
- git命令清单
- SDUT-数据结构实验之二叉树的建立与遍历
- 深入分析ThreadLocal
- WindowsJNDI查询目录下所有的根目录
- 高通CAMIF和OV sensor调试经验分享