首页 > 牛妹爱数列
头像 zjnu_tjq
发表于 2020-08-14 23:36:49
链接:https://ac.nowcoder.com/acm/contest/6885/D来源:牛客网 题意: 给你一个长度为n的01序列,你每次能进行下列操作中的一个1.单点修改:将x位置上的数翻转0变1,1变02.前缀修改:将1~x上的数翻转问你最小的翻转次数 solution: 1.由条件推出 展开全文
头像 Kur1su
发表于 2020-08-15 10:57:08
Description 他手里有一个长度为n的序列a,保证它是一个01序列,并执行以下两种操作:1.单点修改:将位置x上的数翻转(0变1,1变0);2.前缀修改:将位置1~x上的数翻转(每个数都0变1,1变0)。他现在想要最小化翻转次数,使得数列上的所有数都变为0。 Solution 贪心贪不动,考 展开全文
头像 段三园的小迷弟
发表于 2020-08-15 13:39:20
D 进入看大图 https://blog.nowcoder.net/n/605619d1ddaf4921b5caf146d1a1a8cb 如果可以的话点个赞和关注,谢谢大家对本题解的支持 [点赞] #include<bits/stdc++.h> 展开全文
头像 小涂同学啦啦啦
发表于 2020-08-15 10:20:19
一个简单的dp,状态转移方程也很容易写出。我用了两个数组保存dp状态,dp0[i]是把前i个变成0最少用的步数,dp1[i]则是把前i个全部变成1的个数。对于dp0[i],我们可以从dp1[i-1]和dp0[i-1]转移过来,即1)dp0[i]=dp1[i - 1] + 1,将前i-1个或者前i个全 展开全文
头像 sunsetcolors
发表于 2020-08-15 14:18:44
D 牛妹爱数列 题目地址: https://ac.nowcoder.com/acm/contest/6885/D 基本思路: 抓住关键,我一个位置进行了操作偶数次,等于没有进行操作,所以考虑,我这里采用倒着,设表示在这个位置,进行了操作偶数次把之后都变为的最小操作次数,同理设表示在当前这个位 展开全文
头像 一个顶
发表于 2020-08-15 14:57:32
D、 牛妹爱数列 思路 简单 DP, 表示把前 位都变成 需要的最小代价, 表示把前 位都变成 需要的最小代价。转移的方程:如果 :如果 : 参考代码 #pragma GCC optimize(2) #include<bits/stdc++.h> using namesp 展开全文
头像 Lemon_C316
发表于 2020-08-15 15:48:41
//LemonC316 #define _CRT_SECURE_NO_WARNINGS #include <bits/stdc++.h> const int maxn = (int)1e5 + 7; const int mod = (int)1e9 + 7; namespace too 展开全文
头像 东溪看水
发表于 2020-08-15 17:40:19
题目 有一个长度为 n 的序列 a,保证它是一个 01 序列,并执行以下两种操作: 单点修改:将位置 x 上的数翻转(0 变 1,1 变 0); 前缀修改:将位置 1~x 上的数翻转(每个数都 0 变 1,1 变 0)。 求:使得数列上的所有数都变为 0 的最小翻转次数。 解题思路 动态规划 展开全文
头像 yu__xuan
发表于 2020-08-14 22:11:21
题目 牛妹爱数列 思路 有两种操作: 翻转 这个点。 翻转 一个区间。 想要翻转一个不以 为左端点的区间 只需要两步,先翻转,再翻转即可。因此想到成块的 可以用区间修改,单个的 可以用单点修改。考虑以下几种情况 00111011,把中间的零改成 再区间修改需要 次操作,优于两次 展开全文
头像 炊烟晚霞
发表于 2020-08-15 01:03:53
问题描述 他手里有一个长度为n的序列a,保证它是一个01序列,并执行以下两种操作:1.单点修改:将位置x上的数翻转(0变1,1变0);2.前缀修改:将位置1~x上的数翻转(每个数都0变1,1变0)。他现在想要最小化翻转次数,使得数列上的所有数都变为0。 输入输出 第一行,输入一个数n。第二行,输 展开全文