本场难度,略难,主要是难度梯度不均衡外加榜被带歪了。
哈哈,《基础》。
No.721_3
赛提页面
官方题解
F. 对答案一时爽
水,最差一定是0.
const int N = 110;
char a[N],b[N];
int main()
{
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
IOS;
int n;
cin >> n;
rep(i,1,n) cin >> a[i];
rep(i,1,n) cin >> b[i];
int cnt = 0;
rep(i,1,n)
{
if(a[i] == b[i]) cnt += 2;
else cnt += 1;
}
cout << cnt << " " << 0;
}
B. 括号
方法应该有很多种,这题我想了好久。
可能早就可以过的,中间试了很多种构造方法都WA了,最后AC的时候是因为k==0的时候写成了输出’)(’,这里写的是单引号,然后就WA爆了。
后来意识到这点,直接一发过了,所以不知道中间想的几种构造方法能不能过,这里讲我过的这种。
k
\sqrt{k}
k
个’(’ 加上
k
−
1
\sqrt{k}-1
k
−1个’)’ 加上
x
x
x个’(‘加上
y
y
y个’)’。枚举
y
y
y,算出
x
x
x。当括号对的个数等于
k
k
k并且长度不超过
1
0
5
10^5
105的时候输出并结束程序。
另外这题有两个注意点:
1.要求输出非空
2.要求构造出的长度不超过
1
0
5
10^5
105
int main()
{
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
IOS;
int k;
cin >> k;
if(k == 0)
{
cout << ")(";
return 0;
}
if(k < 100000)
{
cout << "(";
rep(i,1,k) cout << ")";
return 0;
}
int k1 = (int)(sqrt(k));
if(k1 * k1 == k)//完全平方数就直接这样一定对
{
rep(i,1,k1) cout << '(';
rep(i,1,k1) cout << ')';
// cout << "de: " << k1*2 << endl;
return 0;
}
int y = 1;
while(1)
{
int k2 = k - k1 * (k1-1);
int t = k2 / y;
int x = t - k1;
if(k1 * (k1-1) + y * (k1 + x) == k && k1 + k1 -1 + x + y <= 100000)
{
rep(i,1,k1) cout << '(';
rep(i,1,k1-1) cout << ')';
rep(i,1,x) cout << '(';
rep(i,1,y) cout << ')';
return 0;
}
y++;
}
}
I. 限制不互素对的排列
这题感觉是个签到题,榜被带歪了没人搞这个,
这题有个条件让这题变成了sb题,就是
k
≤
n
/
2
k\le n/2
k≤n/2。
我们知道长度为
n
n
n的全排列,本来就有
n
/
2
n/2
n/2个偶数,所以最少能组成
n
/
2
−
1
n/2-1
n/2−1个不互质的相邻数对。构造方法就是把偶数提到前边去,偶和奇用1来分界。
又可以利用3这个奇数和6的关系,让数对+1,所以啥时候输出-1直接看下面代码吧。
const int N =1e5+5;
bool vis[N];
int main()
{
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
IOS;
int n,k;
cin >> n >> k;
if(k == n / 2)
{
if(n < 6) cout << "-1";
else
{
for(int i=2;i<=n;i += 2)
{
if(i != 6)
cout << i << " ";
}
cout << 6 << " " << 3 << " ";
for(int i=1;i<=n;i+=2)
{
if(i != 3)
cout << i << " ";
}
}
}
else
{
int cnt = 0;
int pos;
for(int i=2;i<=n&&cnt<=k;i+=2)
{
++cnt;
cout << i << " ";
vis[i] = 1;
}
rep(i,1,n)
{
if(!vis[i]) cout << i << " ";
}
}
}
A. 串
已收入dp文章Day31,此处不再写,附链接.
在Day31