The minimal unique substring CodeForces - 1159D (构造)

Posted uid001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了The minimal unique substring CodeForces - 1159D (构造)相关的知识,希望对你有一定的参考价值。

核心观察是形如01,001,0001,...的串循环时, $n$每增长1, $k$就增长1.

#include <iostream>
#include <sstream>
#include <algorithm>
#include <cstdio>
#include <math.h>
#include <set>
#include <map>
#include <queue>
#include <string>
#include <string.h>
#include <bitset>
#define REP(i,a,n) for(int i=a;i<=n;++i)
#define PER(i,a,n) for(int i=n;i>=a;--i)
#define hr putchar(10)
#define pb push_back
#define lc (o<<1)
#define rc (lc|1)
#define mid ((l+r)>>1)
#define ls lc,l,mid
#define rs rc,mid+1,r
#define x first
#define y second
#define io std::ios::sync_with_stdio(false)
#define endl ‘\n‘
#define DB(a) ({REP(__i,1,n) cout<<a[__i]<<‘ ‘;hr;})
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
const int P = 1e9+7, P2 = 998244353, INF = 0x3f3f3f3f;
ll gcd(ll a,ll b) {return b?gcd(b,a%b):a;}
ll qpow(ll a,ll n) {ll r=1%P;for (a%=P;n;a=a*a%P,n>>=1)if(n&1)r=r*a%P;return r;}
ll inv(ll x){return x<=1?1:inv(P%x)*(P-P/x)%P;}
inline int rd() {int x=0;char p=getchar();while(p<‘0‘||p>‘9‘)p=getchar();while(p>=‘0‘&&p<=‘9‘)x=x*10+p-‘0‘,p=getchar();return x;}
//head

const int N = 1e6+10;
int n, k;
char s[N];

int main() {
	cin>>n>>k;
	int x = (n-k)/2;
	REP(i,1,n) {
		if (x) putchar(‘0‘),--x;
		else putchar(‘1‘),x=(n-k)/2;
	}hr;
}

 

以上是关于The minimal unique substring CodeForces - 1159D (构造)的主要内容,如果未能解决你的问题,请参考以下文章

CF1158B The minimal unique substring(构造)

CF1158B The minimal unique substring(构造)

Codeforces1158 B. The minimal unique substring(构造)

467. Unique Substrings in Wraparound String

LeetCode Unique Substrings in Wraparound String

unique-substrings-in-wraparound-string(好)