当前位置: 首页 > news >正文

dw做旅游网站教程/北京网站优化推广方案

dw做旅游网站教程,北京网站优化推广方案,上海嘉定网站建设,用dw怎麼做网站题目大意 给定一个正整数集合S与正整数n,你要构造出一个包含n个元素的新正整数集合S,使其包含该给定的集合S为子集,每个元素均不超过260−1,且满足下列条件: 对于集合中的任意两个不同元素A和A&B>0; 对于集合中的任意三…

题目大意

给定一个正整数集合S与正整数n,你要构造出一个包含n个元素的新正整数集合S,使其包含该给定的集合S为子集,每个元素均不超过2601,且满足下列条件:

  1. 对于集合中的任意两个不同元素A和A&B>0;
  2. 对于集合中的任意三个不同元素ABC,A&B&C=0。

其中,&是二进制下的按位与运算。假如满足要求的集合不存在,输出-1;否则,假如有多个解,输出将元素排序后字典序最小的一个。

题解

乱搞构造。

将已经给出来的数,转化为二进制,然后列出来。如15,20

000110111001

如果我们要在下面构造一个新的数,为了满足条件1,我们要使新的数,从每一行选一个1,复制到新的数来,比如乱搞一个:
000010101111100010

但是,这种情况不符合条件2,如果把这三个数&起来,第三位将是1,所以我们必须保证每一列的1的个数不能超过2。

那就这样构造吧:

000010101110100011

如果这时候还要添加1个怎么办呢?刚刚我们添加的那一排数,已经没有1可以复制到下一排了,因为那两列的1的个数已经达到2了。
我们只能在刚刚构造的数上再添加1,来保证后面数的可以&它。
我们只能在没有1的列来添加这个新的1,才能使后面数的可以复制这个1。
由于后面每个数都要消耗这个数一个1,所以我们要在这个数上添加x个1(x为后面还要构造的数的个数)

在这个样例,我们还要构造一个数,所以此时只需要在第3行第6列变为1。

001010101110100011

这样下一个数就有办法构造了。
001101011010110010010110

如果构造不出来,比如给定的数没有可用的1了,或没有空间添加更多的1了,那就无解,输出-1。

代码

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const long long MAXN=205,MAXB=61,MAXBIT=(1LL<<60LL);
int n,m;
long long S[MAXN];
int cnt[MAXB];
int main()
{scanf("%d",&m);for(int i=1;i<=m;i++){scanf("%I64d",S+i);for(long long bit=1LL,j=0;bit<MAXBIT;bit<<=1LL,j++)if(S[i]&bit)cnt[j]++;}scanf("%d",&n);bool flag=true;for(int i=1;i<MAXB&&flag;i++)if(cnt[i]>2)flag=false;for(int i=1;i<=m&&flag;i++)for(int j=1;j<=m&&flag;j++)if((S[i]&S[j])==0LL)flag=false;if(flag){long long s;int cnt1;for(int i=m+1;i<=n;i++){s=0LL;for(int j=1;j<i;j++){for(long long bit=1LL,k=0;bit<MAXBIT;bit<<=1LL,k++)if((S[j]&bit)&&cnt[k]==1){s|=bit;cnt[k]++;break;}if((s&(S[j]))==0){flag=false;break;}}if(!flag)break;cnt1=n-i;for(long long bit=1LL,k=0;bit<MAXBIT&&cnt1;bit<<=1LL,k++)if(cnt[k]==0){s|=bit;cnt[k]++;cnt1--;}if(cnt1){flag=false;break;}S[i]=s;}if(flag){sort(S+1,S+n+1);for(int i=1;i<n;i++)printf("%I64d ",S[i]);printf("%I64d\n",S[n]);}}if(!flag)printf("-1\n");fclose(stdin);fclose(stdout);return 0;
}
http://www.lbrq.cn/news/1240093.html

相关文章:

  • 网站参考模板/seo项目完整流程
  • 移动网站开发的视频下载/广告联盟app下载
  • 网站建设启动资金预算/seo网站搭建是什么
  • 治多县网站建设公司/新营销模式有哪些
  • 绵阳网站建设开发/seo快速排名软件品牌
  • 乐云网站建设/cms建站
  • 响应式网站建设外文文献/bt种子磁力搜索引擎
  • 漳州做网站含博大网/实时热榜
  • 做ppt介绍网站/网络推广费用
  • 建站网站图片不显示/9 1短视频安装
  • 京东网站难做吗/关键词广告
  • Wordpress 手机网站/网络推广员工作好做吗
  • 一键优化下载安装/江苏seo外包
  • 中教在线3d建模培训/seo推广排名
  • 乌兰县网站建设公司/百度sem优化师
  • 这是我做的网站/友情链接交换软件
  • 怎样做自己的微商网站/百度网站推广价格
  • 自己公司内网网站和外网怎么做同步/免费的发帖收录网站
  • 开发平台网站多少钱/海阳seo排名优化培训
  • 武穴市住房和城乡建设局网站/友情链接教程
  • 有赞微商城官网登录/seo网站排名的软件
  • 如何做网站预览/项目网
  • 商务网站设计与制作/百度咨询
  • 网站在vps能访问 在本地访问不了/学校seo推广培训班
  • 做门户型网站/网站视频
  • 七牛云建网站/下载百度app最新版到桌面
  • 牡丹江市营商环境建设监督局网站/廊坊关键词排名优化
  • 牛杂网这类网站怎么做的/aso推广公司
  • 手机网站自适应代码/常州seo建站
  • 设计网站大全免费下载/旺道seo优化软件怎么用
  • Python篇--- Python 的加载、缓存、覆盖机制
  • [硬件电路-121]:模拟电路 - 信号处理电路 - 模拟电路中常见的难题
  • FFmpeg+javacpp中纯音频播放
  • 高效轻量的C++ HTTP服务:cpp-httplib使用指南
  • [创业之路-528]:技术成熟度曲线如何指导创业与投资?
  • Vue3 setup、ref和reactive函数