51nod 1596 搬货物(二进制处理)】的更多相关文章

传送门 题意 分析 只要从小到大二进制处理即可 我一直遍历了1->n,应该是0->1e6+1000 果然智障 trick 代码 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int a[1001001]; const int maxn=1e6+1000; int n,x; int main() { scanf("%d",&n)…
1596 搬货物 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  取消关注 现在有n个货物,第i个货物的重量是 2wi .每次搬的时候要求货物重量的总和是一个2的幂.问最少要搬几次能把所有的货物搬完. 样例解释: 1,1,2作为一组. 3,3作为一组. Input 单组测试数据. 第一行有一个整数n (1≤n≤10^6),表示有几个货物. 第二行有n个整数 w1,w2,...,wn,(0≤wi≤10^6). Outp…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1596 思路: 模拟二进制的进位. 这题很坑啊...用c++会超时,用c就行了... #include<stdio.h> #include<string.h> ; int w[maxn]; int main() { //freopen("D:\\input.txt","r",stdin); int n; while(s…
现在有n个货物,第i个货物的重量是 2wi .每次搬的时候要求货物重量的总和是一个2的幂.问最少要搬几次能把所有的货物搬完. 样例解释: 1,1,2作为一组. 3,3作为一组. Input 单组测试数据. 第一行有一个整数n (1≤n≤10^6),表示有几个货物. 第二行有n个整数 w1,w2,...,wn,(0≤wi≤10^6). Output 输出最少的运货次数. Input示例 样例输入1 5 1 1 2 3 3 Output示例 样例输出1 2 合并后找有几个不同的2的幂即可,注意i从0…
现在有n个货物,第i个货物的重量是 2wi .每次搬的时候要求货物重量的总和是一个2的幂.问最少要搬几次能把所有的货物搬完. 样例解释: 1,1,2作为一组. 3,3作为一组. Input 单组测试数据. 第一行有一个整数n (1≤n≤10^6),表示有几个货物. 第二行有n个整数 w1,w2,...,wn,(0≤wi≤10^6). Output 输出最少的运货次数. Input示例 样例输入1 5 1 1 2 3 3 Output示例 样例输出1 2 #include <bits/stdc++…
51nod 1483 化学变换 题面 给出n个整数(n <= 1e5,每个数 <= 1e5),对每个数都可以进行多次操作,操作有两种:乘二/整除以二. 问最少经过多少次操作能使所有数相等. 题解 对于每个数,枚举它变成另外一个数(目标数)所需的最小步数,目标数的代价值 += 这个最小步数.这样最后输出所有目标数中代价值最小的即可. 注意,对于一个奇数,把它除以二之后再乘以二,得到的是一个新数. #include <cstdio> #include <cmath> #in…
题目:http://www.51nod.com/Challenge/Problem.html#!#problemId=1362 方法一: 设 a 是向下走的步数. b 是向右下走的步数. c 是向下走的步数.如果是走到第 j 列的方案数的话,有: \( a+b = n \) \( b+c = j \) 所以枚举 a 和 j , b 和 c 的值就是确定的,可以用组合数算: \( \sum\limits_{i=0}^{n}\sum\limits_{j=0}^{m}C_{i+j}^{i}*C_{j}…
题目:http://www.51nod.com/Challenge/Problem.html#!#problemId=1362 首先,\( f[i][j] \) 是一个 \( i \) 次多项式: 如果考虑差分,用一个列向量维护 0 次差分到 \( n \) 次差分即可,在第 \( n \) 次上差分数组已经是一个常数: 最后一行再维护一个 0 次差分的前缀和,0 次差分其实就是答案: 为了预处理 0 位置上的各次差分值,一开始先 n^2 求出 \( f[0][0] \) 到 \( f[n][n…
1413 权势二进制 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题  收藏  关注 一个十进制整数被叫做权势二进制,当他的十进制表示的时候仅仅由0或1组成.比如0,1,101,110011都是权势二进制而2,12,900不是. 当给定一个n的时候,计算一下最少要多少个权势二进制相加才干得到n. Input 单组測试数据. 第一行给出一个整数n (1<=n<=1,000,000) Output 输出答案占一行. Input演…
有N种物品,每种物品的数量为C1,C2......Cn.从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2......Wn(Wi为整数),与之相对应的价值为P1,P2......Pn(Pi为整数).求背包能够容纳的最大价值. 我们可以转化成01背包来做,但是这样很慢. 所以我们可以二进制优化. 一个数a,我们可以按照二进制来分解为1 + 2 + 4 + 8 -- +2^n + 剩下的数 = a 剩下的数等于a - (1 + 2 + 4 + 8 -- +2^n ) 我们把a拆成这么多项…
python中有MySQLdb.pymysql等数据库模块,本文用pymysql模块连接mysql数据库,并且读取数据库表 看过其他博文的介绍,把程序和数据库比作两个目的地,将游标比喻成运输货车 很是形象生动! 我用的是Anaconda的编辑器spyder,首先要先下载pymysql模块到本地才能导入 导入pymysql模块 import pymysql as pysql 建立连接和准备sql 连接mysql数据库,将数据库名db,主机 host ,端口port,用户user,密码passwor…
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1086 题解:怎么用二进制优化多重背包,举一个例子就明白了. 如果要放n个苹果,可以将n个苹果分成几个2的次方1,2,3,4,m^2然后n可以由这些按照某种组合来组合. 于是就知道怎么优化了. #include <iostream> #include <cstring> #include <cstdio> using namespac…
1413 权势二进制 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB  一个十进制整数被叫做权势二进制,当他的十进制表示的时候只由0或1组成.例如0,1,101,110011都是权势二进制而2,12,900不是. 当给定一个n的时候,计算一下最少要多少个权势二进制相加才能得到n. Input 单组测试数据. 第一行给出一个整数n (1<=n<=1,000,000) Output 输出答案占一行. Input示例 9 Output示例 9思路:完全背包刚刚装…
1363 最小公倍数之和 题目来源: SPOJ 基准时间限制:1.5 秒 空间限制:131072 KB 分值: 160 给出一个n,求1-n这n个数,同n的最小公倍数的和.例如:n = 6,1,2,3,4,5,6 同6的最小公倍数分别为6,6,6,12,30,6,加在一起 = 66. 由于结果很大,输出Mod 1000000007的结果. Input 第1行:一个数T,表示后面用作输入测试的数的数量.(1 <= T <= 50000) 第2 - T + 1行:T个数A[i](A[i] <…
1086 背包问题 V2  基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题  收藏  关注 有N种物品,每种物品的数量为C1,C2......Cn.从中任选若干件放在容量为W的背包里,每种物品的体积为W1,W2......Wn(Wi为整数),与之相对应的价值为P1,P2......Pn(Pi为整数).求背包能够容纳的最大价值.   Input 第1行,2个整数,N和W中间用空格隔开.N为物品的种类,W为背包的容量.(1 <= N <= 100,1 <=…
1413 权势二进制 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 一个十进制整数被叫做权势二进制,当他的十进制表示的时候只由0或1组成.例如0,1,101,110011都是权势二进制而2,12,900不是. 当给定一个n的时候,计算一下最少要多少个权势二进制相加才能得到n. Input 单组测试数据. 第一行给出一个整数n (1<=n<=1,000,000) Output 输出答案占一行. Input示例…
公元2222年,l国发生了一场战争. 小Y负责领导工人运输物资. 其中有m种物资的运输方案,每种运输方案形如li,ri.表示存在一种货物从li运到ri. 这里有n个城市,第i个城市与第i+1个城市相连(这里1号城市和n号城市并不相连),并且从i号城市走到i+1号或者从i+1号走到i号需要耗费1点时间. 由于高科技的存在,小Y想到了一种节省时间的好方案.在X号城市与Y号城市之间设立传送站,只要这么做,在X号城市走到Y号城市不需要耗费时间,同样的,从Y号城市走到X号城市也不需要耗费时间. 但是为了防…
一个十进制整数被叫做权势二进制,当他的十进制表示的时候只由0或1组成.例如0,1,101,110011都是权势二进制而2,12,900不是. 当给定一个n的时候,计算一下最少要多少个权势二进制相加才能得到n. Input 单组测试数据.  第一行给出一个整数n (1<=n<=1,000,000) Output 输出答案占一行. Sample Input 9 Sample Output 9 题解:无论给的什么数,只要找到这个数中每个位中最大的那个数x就可以了,用x个数,每个数都是这么长度的,其他…
题意 : 一个十进制整数被叫做权势二进制, 当他的十进制表示的时候只由0或1组成.例如0, 1, 101, 110011都是权势二进制而2, 12, 900不是.当给定一个n (1<=n<=1,000,000)的时候, 计算一下最少要多少个权势二进制相加才能得到n. 分析 : 由于权势二进制可以在任意一位构造出1或者0, 那我就可以让每一位都在同时减1, 直到某一位变成0, 继续减其他位, 直到全部都等于0.例如 23303, 可以先构造11101进行相减, 使得除了零外的每一位都减1, 减两…
本来刚开始还是想用每一位 -1的个数 然后再乘以10  不断累加 后来发现 完全不是这回事啊  因为本身就是0 和 1 所以只要记录出现的最大的数字 就是答案  因为 n >= 1 // 所以不需要考虑 0 也是1的情况 #include<bits/stdc++.h> using namespace std; ]; int main() { ; cin >>s; int l=strlen(s); ;i<l;i++) { res = max(res,s[i]-'); }…
集合统计类期望题目. 题目描述 在一片大海上有 \(n\) 个岛屿,规划建设 \(m\) 座桥,第i座桥的成本为 \(z_i\),但由于海怪的存在,第 \(i\) 座桥有 \(p_i\) 的概率不能建造. 求在让岛屿尽量联通的情况下,期望最小成本为多少. 尽量联通:在对每座桥确定能否建造的情况下,对于任意两个岛屿,如果存在一种建桥方案使得它们联通,那么它们必须联通. 输入输出格式 输入格式: 第一行:两个整数 \(n\) 和 \(m\)(\(n\) 为岛屿数量,\(m\) 为桥的数量),中间用空…
V3其实和dp关系不大,思想挂标题上了,丑陋的代码不想放了.…
现在有好多种砝码,他们的重量是 w0,w1,w2,...  每种各一个.问用这些砝码能不能表示一个重量为m的东西. 样例解释:可以将重物和3放到一个托盘中,9和1放到另外一个托盘中. Input 单组测试数据. 第一行有两个整数w,m (2 ≤ w ≤ 10^9, 1 ≤ m ≤ 10^9). Output 如果能,输出YES,否则输出NO. Input示例 3 7 Output示例 YES 题解:如果让一些砝码表示m的话,只需要将m转化为w进制数,然后要求每一位不是0就是1,然而这里可以利用天…
[51Nod 1773] A国的贸易 题目描述 A国是一个神奇的国家. 这个国家有 2n 个城市,每个城市都有一个独一无二的编号 ,编号范围为0~2n-1. A国的神奇体现在,他们有着神奇的贸易规则. 当两个城市u,v的编号满足calc(u,v)=1的时候,这两个城市才可以进行贸易(即有一条边相连). 而calc(u,v)定义为u,v按位异或的结果的二进制表示中数字1的个数. ex:calc(1,2)=2 --> 01 xor 10 = 11 calc(100,101)=1 --> 0110,…
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1674 对区间分治,统计\([l,r]\)中经过mid的区间的答案. 我的做法是从mid向右扫到r,统计出所有\([mid,i],mid\leq i \leq r\)的and和or值. 然后发现这些and和or值有很多相同的,把相同的压在一起并记录sum,再从mid-1扫到l并暴力从mid向右统计答案. 事实上因为\([mid,i],mid\leq i \leq r\)是…
先说说前面的SPOJ-RNG吧,题意就是给n个数,x1,x2,...,xn 每次可以生成[-x1,x1]范围的浮点数,把n次这种操作生成的数之和加起来,为s,求s在[A,B]内的概率 连续形的概率 假设有3步,那整个分布范围相当于一个立体几何图形,上界b和下界a可当成一个x+y+z=a或b的平面看待,算出x<=X1 x>=-X1 y<=X2 y>=-X2 z<=X3 z>=-X3 发现体积就是f(x1,x2,x3)+f(-x1,-x2,x3)+f(-x1,x2,-x3)…
原文地址:http://blog.csdn.net/wuyazhe/article/details/5627253 我们的串口程序,除了通用的,进行串口监听收发的简单工具,大多都和下位机有关,这就需要关心我们的通讯协议如何缓存,分析,以及通知界面. 我们先说一下通讯协议.通讯协议就是通讯双方共同遵循的一套规则,定义协议的原则是尽可能的简单以提高传输率,尽可能的具有安全性保证数据传输完整正确.基于这2点规则,我们一个通讯协议应该是这样的:头+数据长度+数据正文+校验 例如:AA 44 05 01…
今天看了看51nod发现有这样一个练习赛,就做了做.因为实力太弱想不出E题,各位神犇勿D. (5.26UPD:E题想粗来了) A 区间交 不难发现若干线段[li,ri]的交就是[max(li),min(ri)],那么我们考虑枚举min(ri),将ri>=min(ri)的区间按顺序加入,这时我们显然应该选第k小的li来更新答案.这些操作用个堆就可以轻松维护了. 时间复杂度为O(NlogN). #include<cstdio> #include<cctype> #include&…
洛谷1126 机器人搬重物 题目描述 机器人移动学会(RMI)现在正尝试用机器人搬运物品.机器人的形状是一个直径1.6米的球.在试验阶段,机器人被用于在一个储藏室中搬运货物.储藏室是一个N*M的网格,有些格子为不可移动的障碍.机器人的中心总是在格点上,当然,机器人必须在最短的时间内把物品搬运到指定的地方.机器人接受的指令有:向前移动1步(Creep):向前移动2步(Walk):向前移动3步(Run):向左转(Left):向右转(Right).每个指令所需要的时间为1秒.请你计算一下机器人完成任务…
一.回顾 使用qt2年多了,但是还是觉得很陌生,总是会被qt搞的很紧张,有时候当我自信满满的打开帮助文档,搜索某个已知的类时,由于笔误敲错了一个字母而出现了另外一个类,不过奇怪的是还真有这么一个类,哎!!!我怎么都不知道呢!看来qt的东西还真不是一般的多,随便一个笔误都可能发现新的东西.特别是qt现在已经发布了qt5.7版本,相对于qt4的时代那真是天差地别,就我个人而言,我现在用的是qt5.6.1-1,因为qt5.6版本官方声称维护2年的时间.qt5.6取消了webkit模块,如果需要使用可以…