首页 > 小红的排列构造②
头像 _KOKORO_
发表于 2025-04-10 12:31:27
思路就是维护一个全局数字 k 初始为 1。遇到字符串里有 '1' 就倒序遍历填充并让 k++如 00101, 第一次遇到 '1' 答案数组变成 3 2 1 0 0, 第二次遇到 '1' 变成 3 2 1 5 4 import java.util.Scanner; // 注意类名必须为 Main, 展开全文
头像 牛客856751393号
发表于 2025-03-07 11:45:27
while True: try: n = int(input()) s = input() if s[-1] == '0': print(-1) else: res = [i fo 展开全文
头像 番禺小韭菜
发表于 2025-03-04 16:47:05
#include <iostream> #include <string> #include <vector> using namespace std; int main() { int n; string s; cin >> 展开全文
头像 牛客215801247号
发表于 2025-03-06 23:22:07
import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in. 展开全文
头像 吴昊9873
发表于 2025-05-05 14:06:41
#include <stdio.h> int main() { int n; scanf("%d", &n); char str[n]; int arr[n]; for (int i = 0; i < n; i+ 展开全文
头像 牛客277605456号
发表于 2025-04-12 14:34:34
写了好久的递归调用dfs,结果超时了,一看答案感觉自己像小丑,记录一下n = int(input()) s = input() if s[-1] != '1': print(-1) else: def deal(arr:list, s:str, arr2:list): 展开全文
头像 叫啥名
发表于 2025-04-09 09:38:05
// #牛客春招刷题训练营# https://www.nowcoder.com/discuss/726480854079250432 #include <iostream> #include <vector> using namespace std; int main() 展开全文
头像 在写文章的小白菜很犯困
发表于 2025-06-02 20:58:11
观察到以下规律:如果一个n排列的第k<n位和最后一位交换,那么[0,n)依旧是一个排列,而[0,k]不是一个排列。所以算法如下:从一个n排列开始(如1 2 3 4 5 ... n)对每个'0'的位置 i,总是找其后面的第一个'1'位置 j,交换perm[i],perm[j]。 #include 展开全文
头像 在看机会的袋鼠很威猛
发表于 2025-06-24 20:41:11
import sys def find(): n = int(input()) sstr = input() if sstr[-1]=='0': return [-1] f = [i + 1 for i in range(n)] for i 展开全文
头像 永夏360
发表于 2025-05-17 23:04:29
#include <iostream> using namespace std; int main() { int a; cin>>a; string str; cin>>str; if(str[a-1]=='0'){ 展开全文

等你来战

查看全部