首页 > 其他分享 >HDU 5491 The Next(构造)

HDU 5491 The Next(构造)

时间:2023-06-12 14:32:37浏览次数:40  
标签:HDU int s2 sum pos Next ans 5491 s1


题意:给你D(D<=2^31),s1和s2,求比D大的第一个数并且这个数二进制1的数目在[s1,s2]范围里,输出这个数

思路:直接从D+1算起,如果1的数目>s2那就跳过,如果s1>sum1,那么就将这个数的低位s1-sum1个0补成1,那么就是最优的了



#include<bits/stdc++.h>
using namespace std;
#define LL long long
int a[40];
int main()
{
    int T,cas=1;
	scanf("%d",&T);
	while(T--)
	{
        printf("Case #%d: ",cas++);
		LL d,s1,s2,cnt=0;
		LL sum = 0;
		int pos = 0;
		int flag = 0;
		scanf("%lld%lld%lld",&d,&s1,&s2);
		while(1)
		{
			memset(a,0,sizeof(a));
			pos = 0;
			sum = 0;
			cnt++;
			LL ans = d+cnt;
			while(ans)
			{
                if(ans&1)a[pos]=1,sum++;
				else a[pos]=0;
				pos++;
				ans>>=1;
			}
            if(sum>s2)continue;
			if(sum>=s1&&sum<=s2)
			{
				printf("%lld\n",cnt+d);
				flag = 1;
				break;
			}
			int b = s1-sum;
			int j = 0;
            while(b)
			{
                if(a[j]==0)
				{
					a[j]=1;
					b--;
				}
				j++;
			}
			break;
		}
		LL ans = 0;
		LL temp = 1;
        if(!flag)
		{
            for(int i = 0;i<40;i++)
			{
				if(a[i])
					ans+=temp;
				temp<<=1;
			}
		}
		if(!flag)
		   printf("%lld\n",ans);
	}
}


HDU 5491 The Next(构造)_#define

标签:HDU,int,s2,sum,pos,Next,ans,5491,s1
From: https://blog.51cto.com/u_16156555/6462560

相关文章

  • HDU 5489 Removed Interval(DP)
    题意:求去掉某一个长度为L的子串的LIS思路:画画图其实比较显然的想法是去掉这个区间的时候答案是右边以第一个数开头的LIS+左边最后一个数小于右边第一个数的LIS,为什么是右边以第一个数开头的LIS呢,因为如果是在这个L的后第二个是最佳答案的话那么我在这个“窗口”滑到L+1这个位置的时......
  • HDU 5492 Find a path(DP)
    思路:将式子化开其实就是求(n+m-1)*s1-s2的最小值,s1表示各个格子的平方和,s2表示和的平方,留意到数据范围较小,令dp[i][j][k]为走到第i行第j列当前和为k的平方和的最小值,最后答案就是(n+m-1)*dp[i][j][k]-k*k#include<bits/stdc++.h>usingnamespacestd;#defineinf1e9inta[33][3......
  • [重读经典论文] ConvNeXt——卷积网络又行了
    参考博客:ConvNeXt网络详解参考视频:13.1ConvNeXt网络讲解ConvNeXt其实就是面向SwinTransformer的架构进行炼丹,最后获得一个比SwinTransformer还要牛逼的网络。 ......
  • 关于刚使用ABP.VNext遇到的坑
    使用的是开源的项目,项目链接:https://github.com/abpframework/abp-samples/tree/master/BookStore-Mvc-Efcore跑的项目是这个大项目下的小项目,在文件夹里面找到这个文件夹就是我用的这个项目文件喽BookStore-Mvc-EfCore 第一个肯定就是生成数据库啦项目第一步生成数据库......
  • HDU 5437 Alisha’s Party(优先队列模拟)
    思路:题目比较好懂的模拟题,用一个优先队列即可     模拟的时候要注意最后还会再开一次门,把剩下的人全部放进来,开门的时间并不一定是递增的,要自己排个序,还有就是要注意开门的时候是25这种数据,就是到第二个人到了开门,然后可以放5个人进来,这样不处理的话会RE#include<bits/s......
  • HDU - 5253 连接的管道 (卡鲁斯卡尔)最小生成树
    TimeLimit: 1000MS MemoryLimit: 32768KB 64bitIOFormat: %I64d&%I64uHDU-5253连接的管道Submit StatusDescription老Jack有一片农田,以往几年都是靠天吃饭的。但是今年老天格外的不开眼,大旱。所以老Jack决定用管道将他的所有相邻的农田全部都串联起......
  • HDU - 1114 Piggy-Bank (完全背包)
    TimeLimit: 1000MS MemoryLimit: 32768KB 64bitIOFormat: %I64d&%I64uHDU-1114Piggy-BankSubmit StatusDescriptionBeforeACMcandoanything,abudgetmustbepreparedandthenecessaryfinancialsupportobtained.Themainincomeforthis......
  • HDU - 2473 (并查集+设立虚父节点(马甲))
    涉及到并查集的删除操作,比较复杂,可以利用虚设父节点的方法:例如:有n个节点,进行m次操作.首先将0~n-1的节点的父节点设置为i+n,n~2n+1的节点的父节点设置为本身,有m次操作,所以要用到m个虚节点,例如0,1,2,3,4,5的父节点为7,8,9,10,11,把他们插入2的集合,所以他们的根节点都为8,当把2从集合......
  • vue-router的next()方法
    1.next():进入管道中的下一个钩子。如果全部钩子已经执行完毕,则导航的状态就是confirmed(确认的)2.next(false):中断当前的导航。如果URL改变了(可能是用户手动输入或者浏览器后退),那么URL地址会重置到from路由对应的地址3.next('/')或者next({path:'/'}):跳转到一个不同的地址。当前......
  • 2023-06-03 hexo+next主题之如何设置菜单图标
    注意是next主题找到你的博客\themes\hexo-theme-next里的_config.yml文件,搜索menu,如:menu:home:/||homeabout:/about/||usertags:/tags/||tagscategories:/categories/||tharchives:/archives/||archivealbum:/album/比如我现在创建了album(相册)菜单,......