小欧现在有个小朋友,同时有个座位。小欧现在要给他们安排座位,个小朋友中有一些希望自己是独特的,另一些小朋友则希望自己是不独特的。 当一个小朋友是独特的当且仅当小朋友自身的编号与座位的编号不相等,否则这个小朋友就是不独特的。 现在给你个小朋友的需求,你需要给他们安排座位,满足尽可能多的小朋友的需求。
区块链毕设网qklbishe.com为您提供问题的解答
小欧现在有个小朋友,同时有个座位。小欧现在要给他们安排座位,个小朋友中有一些希望自己是独特的,另一些小朋友则希望自己是不独特的。
当一个小朋友是独特的当且仅当小朋友自身的编号与座位的编号不相等,否则这个小朋友就是不独特的。
现在给你个小朋友的需求,你需要给他们安排座位,满足尽可能多的小朋友的需求。
“`
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e6 + 10;
int a[N];
bool st[N];
int b[N];
signed main()
{
int n;
cin >> n;
string s;
cin >> s;
int k = s.size();
s = " " + s;
int m = 0;
for(int i = 1; i <= k;i++) if(s[i] == ‘1’) st[i] = 1,b[++m] = i;
sort(b + 1,b + n + 1);
reverse(b + 1, b + n + 1);
int kk = 0;
if(m%2 == 0)
{
for(int i = 1; i <= n;i++)
{
if(st[i] == 0) a[i] = i;
else a[i] = b[++kk];
}
}
else
{
int k = m/2 + 1;
int ll = 0;
int kk = 0;
for(int i = 1; i <= n; i++)
{
if(st[i] == 0) a[i] = i;
else
{
if(ll == 0)
{
ll = 1;
a[i] = b[k];
b[k] = 0;
sort(b + 1,b + n + 1);
reverse(b + 1,b + n + 1);
}
else
{
a[i] = b[++kk];
}
}
}
}
for(int i = 1; i <= n; i++) cout << a[i] << " ";
}
“`
30:12
n = int(input())
s = input()
ans = [i + 1 for i in range(n)]
# 找到需要独特的朋友位置
unique_indices = [i for i in range(n) if s[i] == ‘1’]
# 如果有独特需求的朋友,进行位置交换
if unique_indices:
# 进行位置轮换,使每个有独特需求的朋友不在原位置
last_value = ans[unique_indices[-1]]
for i in range(len(unique_indices) – 1, 0, –1):
ans[unique_indices[i]] = ans[unique_indices[i – 1]]
ans[unique_indices[0]] = last_value
print(*ans)
37:24
n = int(input()) s = input() ans = [i + 1 for i in range(n)] st = [] for i in range(n): if s[i] == "1": st.append([i + 1, i]) tmp = st[0][0] for i in range(len(st) - 1): st[i][0] = st[i + 1][0] st[-1][0] = tmp # print(st) for x, y in st: ans[y] = x print(*ans)
15:14
以上就是关于问题小欧现在有个小朋友,同时有个座位。小欧现在要给他们安排座位,个小朋友中有一些希望自己是独特的,另一些小朋友则希望自己是不独特的。
当一个小朋友是独特的当且仅当小朋友自身的编号与座位的编号不相等,否则这个小朋友就是不独特的。
现在给你个小朋友的需求,你需要给他们安排座位,满足尽可能多的小朋友的需求。的答案
欢迎关注区块链毕设网-
web3一级市场套利打新赚钱空投教程
区块链NFT链游项目方科学家脚本开发培训