首页 > Quasi Binary
头像 又在摸鱼的大熊猫很勤奋努力
发表于 2020-10-15 16:20:30
Quasi Binary 题目大意 就是给你一个数 ,然后你要把 表示成看上去像二进制的十进制数的和,要求这样的数越少越好 分析 对于一个十进制数 ,可以表示为 那么这个可以作为其中一些不是最优的解,那么我们考虑优化一下上面的这个东西根据乘法分配律,对于前面那个东西相同的部分是可以合并的,那么就可 展开全文
头像 Kur1su
发表于 2020-10-15 18:02:11
Description A number is called quasibinary if its decimal representation contains only digits 0 or 1. For example, numbers 0, 1, 101, 110011 — are qua 展开全文
头像 __故人__
发表于 2020-10-15 19:09:24
分析 直接贪心,没有什么思维难度。主要是考虑到贪心的选取更少的元素。那么元素个数为 其中 。那么考虑 如果分解完后 仍然这一位有 ,那么 。 代码 #include<bits/stdc++.h> using namespace std; int a[100],n,L,Ans 展开全文
头像 shyyhs
发表于 2020-10-15 21:06:39
对于本题而言,我们不妨可以直接贪心,每次尽可能多的把每一位的1消掉一个.如此在线性的复杂度内即可做出. #include <bits/stdc++.h> int cnt[8];//统计每位的个数. std::vector<int>v; int main() { int 展开全文
头像 神崎兰子
发表于 2020-10-15 15:46:10
这道题考察的是对数字/十进制的处理。首先说个结论:最终数字个数的最小值为十进制里最大的那个数字。证明起来很简单。假设最大的那个数字为 ,首先显然 个quasibinary(01串)一定能组成最终的 ,然后如果低于 个01串则显然不能组成 ,因为低于 个组成的最大的数字一定是小于 的。那 展开全文
头像 rk_no
发表于 2020-10-15 18:53:47
题目: 给你一个,让你将其拆成最少的若干个十进制数的和,这些十进制数只由和构成。要求输出方案。 做法: 这些特殊的十进制数其实与二进制数一一对应,以内只有个(对应于位以内二进制数和)。我们考虑先将以内的数先求出来。然后这就变成了一个完全背包问题,要求输出方案。方案用一个辅助记录当前最后一个选的数即 展开全文
头像 lifehappy
发表于 2020-10-15 19:04:37
Quasi Binary 思路 对答案k还是挺显然的,等于n的最大数位,能想到这一点就简单了,只要存下所有的数位,然后一位一位模拟即可。 代码 /* Author : lifehappy */ #include <bits/stdc++.h> using namespace std 展开全文
头像 issue是云哥的小迷×呀
发表于 2020-10-16 09:17:08
我的解法非常暴力 开10个的数组 因为最多只有9个数去构造 因为对于某一位来说,等于几就需要几个1来构造 #include <bits/stdc++.h> using namespace std; bool a[10][1000009]; int n,top; int main() { 展开全文
头像 DeNeRATe
发表于 2020-10-15 19:03:18
分析 易证:对于一个位置上的1来说,直接消除,绝对比进位消除优(显然所以我们只需要每次贪心消去非零位上的一个1即可 代码 //20zr 18 day4 C #include <algorithm> #include <iostream> #include <cstrin 展开全文
头像 程序蒟蒻
发表于 2020-10-19 23:23:50
思路:先判断出来各个位数上的最大值,得出一共要输出几个数,然后建一个数组,不断跑他的位数,进行模拟即可,暴力水题 #include<bits/stdc++.h> using namespace std; int a[105]; int b[1000005]; int n; int mai 展开全文

等你来战

查看全部