Numbers Time Limit: 2 Seconds      Memory Limit: 65536 KB DreamGrid has a nonnegative integer n . He would like to divide n into m nonnegative integers a1,a2,...am and minimizes their bitwise or (i.e.a1+a2+...+am=n  and a1 OR a2 OR a3...OR am should…
题意: 给出一个数n,现在要将它分为m个数,这m个数相加起来必须等于n,并且要使得这m个数的或值最小. 思路: 从二进制的角度分析,如果这m个数中有一个数某一位为1,那么最后或起来这一位肯定是为1的,所以如果某一位为1了,那么我们尽量就让其余位也等于1.所以我们从最高位开始枚举,看看这一位是否需要为1,如果需要为1的话,那么剩下的几个数也尽量让这一位等于1. 代码: 不懂啊,还是看别人的代码写的,觉得有用就拿去吧.(卧槽,第一次开我的IDEA写java还不错的嘛) import java.mat…
ACM-ICPC 2018 徐州赛区网络预赛 G. Trace (思维,贪心) Trace 问答问题反馈 只看题面 35.78% 1000ms 262144K There's a beach in the first quadrant. And from time to time, there are sea waves. A wave ( xx , yy ) means the wave is a rectangle whose vertexes are ( 00 , 00 ), ( xx ,…
A - Balloon Robot Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Submit Status Practice ZOJ 3981 Description The 2017 China Collegiate Programming Contest Qinhuangdao Site is coming! There will be \(n\) teams participating…
参考自:https://blog.csdn.net/u013534123/article/details/78484494 题意: 给出两个数字n,m,把n分成m份,使得以下最小 思路: 或运算只有0|0=0,如果这一位有一个1,那么结果中这一位一定是1,所以我们要尽可能把1集中在几个位上(以二进制看结果) (二进制)主要的思想是把高位设置成1,这样可以分担大部分数值 用 i-1 位全部为1的二进制数t × m 与n进行判断 如果n大,说明n可以分成 pow(2,i)*m+x,x为不确定数字,这…
G - 密码 Time Limit:1000MS     Memory Limit:65535KB     64bit IO Format:%lld & %llu Submit Status   DescriptionFish是一条生活在海里的鱼.有一天他很无聊,就到处去寻宝.他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进.   通过翻阅古籍,Fish得知了这个密码的相关信息: 1.该密码的长度为N 2.密码仅含小写字母 3.以每一个字符为中心的最长回文串长度. 4.以每两…
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ4977 - 八月月赛 Problem G 题意 小明组建了一支由n名玩家组成的战队,编号依次为1到n.每局游戏开始时,所有玩家都会从飞机上跳伞,选择一个目的地降落.他们发现地面上一共有m间房子,编号依次为1到m.每间房子有一名敌人.第i名玩家有ai发子弹,第i间房子里的敌人有bi发子弹,消灭他可以获得ci点积分.每名玩家必须且只能选择一间房子降落.若第i名玩家选择了第j间房子,如果ai>bj,他就…
递增子序列的最小组数.可以直接贪心,扫一遍 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> using namespace std; struct stick{ int h,w; }Sticks[]; bool cmp(stick a,stick b) { return (a.h<b.h)||(a.h==b.h&&(a.w<b.w)…
题意: 定义一种集合,只有两个数,两个数不同且加起来为素数.要从n个数里抽出数字组成该集合(数字也可以是1~n,这个好懵圈啊),要求你选择最多k个该种集合组成一个有最多元素的集合,求出元素的数量. 思路: 代码: #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <vector> using namespace std; +…
题意: 一个机器人在长为M的圆形轨道上送气球,当机器人到达M号点的时候下一站会回到1号点,且全程不会停止运动.现在在长为M的轨道上有N个队伍,队伍会在某个时间做需要一个气球,机器人需要送过去.一共有P次请求,每一次请求a.b 表示a号在b时间需要气球.现在给定P次请求和N个队伍在轨道上的位置,机器人在0时刻可在轨道上的任意节点开始.计算从那个节点开始每个请求收到气球的时间t-请求的时间b的差的和的最小值. 思路: 任意选择一个起点 ,算出每次请求的t-b的值并保存在数组h中,值的范围在(0~m-…