描述

每年的12月24日,是圣诞老人忙碌的日子,也只有这一天,他才会忙碌起来。面对着将要来临的宁静的夜晚,是一种怎样的幸福和安宁感。作为圣诞老人的第一件事,就是需要为世界各地的孩子们写上贺卡,带上自己的祝福和礼品送给他们。毕竟,世界上那么多可爱的孩子,要给他们每一个人写一封贺卡,单凭自己的力量是不足以完成的。
众所周知,一直陪伴在圣诞老人身边的是快乐的小精灵们。他们为圣诞老人而工作,其实是一个很乐意的事情。冰天雪地的北极,是他们的家,是圣诞老人的家。圣诞老人一直以来对于贺卡的书写非常重视,他也一直请一些优秀的小精灵们去帮助他完成这件事……
12月24日早上7点钟。北极圣诞区开了一个会,会议由圣诞老人主持,在会的其他都是小精灵们,他们似乎都非常高兴,原因是等待圣诞老人的一份名单。这份名单里面的人都是这些小精灵们,一共n有个小精灵。这n个小精灵是圣诞老人根据这一年大家的表现状况(比如说谁吃饭吃得最多、谁调制的巧克力最好吃、谁的笑声最大、谁最不喜欢哭等等因素)而制定的预选的书写贺卡者名单。
圣诞老人一个一个字,饱含激情地念出了每一个预选的小精灵。鼓掌……
可是,接下来。并不是这个预选名单里面的所有小精灵都可以参加贺卡书写这个合作性任务。因为在以前的贺卡书写合作任务中,有一些小精灵们因为某些原因而对书写的格式和书写的字体喋喋不休。所以尽量避免这种情况发生,圣诞老人必须从预选名单中选出m(1<=m<=n)个小精灵来完成这项任务。可是……每一个小精灵的贺卡书写质量又有所不同……
圣诞老人想了想,他觉得应该在其中选择m个小精灵,使得这m个小精灵中任意两个在曾经的贺卡书写合作任务中没有发生过矛盾冲突,并且需要这m个小精灵的书写质量的总合S最高。
格式

输入格式

第一行一个数n。
第二行n个数,第i个数代表预选名单中第i号小精灵的书写质量(均为非负整数)。
接下来有若干行,每行两个不同的非负整数x和y,表示预选名单中第x号和第y号的小精灵曾经在贺卡书写合作任务中发生过冲突。
输出格式

第一行一个数S。
样例1

样例输入1

3
4 2 5
1 2
Copy
样例输出1

9
Copy
限制

各个测试点1s
提示

1<=n<=50,1<=x,y<=n

思路:dfs+剪枝

题解:

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
bool vis[500];
int sum[500];
bool pd[500][500];
int ans=0;
int n;
struct cc{int from,to;
}es[200000];//用邻接表存一定要开大,有冲突的对数不确定。
int first[200000],nxt[200000];
int tot=0;
void build(int ff,int tt)
{es[++tot]=(cc){ff,tt};nxt[tot]=first[ff];first[ff]=tot;
}
int val[500];
void dfs(int x,int now)
{if(now+sum[x]<=ans)//剪枝,如果后面的全用上也不如答案优直接减掉。 {return;}ans=max(ans,now);if(x>n){return;}for(int i=0;i<=1;i++){if(i==1){for(int j=first[x];j;j=nxt[j]) //如果存在冲突就减掉 {int v=es[j].to;if((pd[x][v]&&vis[v])){return;}}vis[x]=1;dfs(x+1,now+val[x]);vis[x]=0;}else{dfs(x+1,now);}}
}
struct ff{int id,num;
}hhh[500];
int cmp(ff aa,ff bb)
{if(aa.num==bb.num){return aa.id<bb.id;}return aa.num>bb.num;
}
int a[500];
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&hhh[i].num);hhh[i].id=i;}sort(hhh+1,hhh+n+1,cmp);//按价值从大到小排序,极大减少复杂度。 for(int i=1;i<=n;i++){a[hhh[i].id]=i;}int x,y;while(scanf("%d%d",&x,&y)!=EOF){x=a[x];y=a[y];build(x,y);build(y,x);pd[x][y]=1;pd[y][x]=1;}for(int i=1;i<=n;i++){val[i]=hhh[i].num;}for(int i=n;i>=1;i--){sum[i]=sum[i+1]+val[i];}dfs(1,0);printf("%d",ans); return 0;
}

Vijos 1048 送给圣诞夜的贺卡(dfs)相关推荐

  1. vijos P1051 送给圣诞夜的极光

    调了好久... #include <cstdio> #include <queue> using namespace std;char a[110*110]; /******* ...

  2. 洛谷 P1454【圣诞夜的极光】

    题目背景 圣诞夜系列~~ 题目描述 圣诞老人回到了北极圣诞区,已经快到12点了.也就是说极光表演要开始了.这里的极光不是极地特有的自然极光景象.而是圣诞老人主持的人造极光. 轰隆隆--烟花响起(来自中 ...

  3. 圣诞夜,让你的代码都变成圣诞树吧!

    关注TJ君,回复"武功秘籍"免费获取计算机宝典书籍 今天是圣诞夜,有多少小伙伴是出去过节了呢?当然肯定有更多的小伙伴是等着和TJ君一起分享圣诞夜的编码快乐! 既然是圣诞夜,那我们今 ...

  4. 疯狂圣诞夜,带你探寻那些吃喝玩乐的好去处……

    叮叮当,叮叮当,铃儿响叮当,嘿!圣诞节马上要来啦!!! 步入节日季以来,多家酒店纷纷举办圣诞点灯仪式,装潢大堂,为圣诞开篇. 北京雁栖酒店 海口鲁能希尔顿酒店 成都尼依格罗酒店 华丽丽的圣诞点灯,香喷 ...

  5. 圣诞夜表白代码!看你答不答应

    公众号[走神研究所]回复[表白]获取网站 这里有棵会动的圣诞树来帮助你表白噢! 圣诞节马上要到了,不知道有没有和你一起过节的人呢? 还没有?没关系,看看这个圣诞夜表白代码,发给你心仪的人,伴着音乐和动 ...

  6. 计算机发展红火,为何女性却越来越少?一场圣诞夜的反思

    热点追踪 / 深度探讨 / 实地探访 / 商务合作 文/赵家鹏 1816年的圣诞夜,诗人拜伦给一位密友寄去了一封信. 信中附有他新作的一首诗,这首诗名为<路德分子之歌>,后来成为了拜伦的代 ...

  7. 【Unity3D Shader编程】之五 圣诞夜篇 Unity中Shader的三种形态对比 混合操作合辑

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 本系列文 ...

  8. SNH48《浪漫圣诞夜2014》甜蜜单曲温暖来袭 4000年第一美女鞠婧祎陪你度过浪漫圣诞...

    4000年美女鞠婧祎 SNH48与你相约浪漫圣诞夜,<浪漫圣诞夜2014>圣诞祝福单曲甜蜜来袭!今年是SNH48与大家共同度过的第3个圣诞节,在这个充满温馨与甜蜜的节日里,由S队.N队.H ...

  9. 优秀课程案例:母亲节!用Scratch编程送给母亲最好的贺卡礼物!

    点击上面微信号关注我关注我哟每天中午12:00-2:00定期推送文章,喜欢的可以设置星标,并分享点赞我们的文章,非常感谢大家的支持,您的点击的在看就是我们的动力! 今天祝愿天下的母亲,节日快乐,每天都 ...

  10. 充满科技感的词汇_点亮你的圣诞夜,32色氛围灯随音乐舞动的仪式感

    正如<小王子>中所说:"仪式感,就是使某一天与其他日子不同,使某一刻与其他时刻不同." 在大街小巷都亮起华灯的时刻,我们就知道,一定有一个特殊的时刻要庆祝.在纽约最大的 ...

最新文章

  1. 注意:宝塔曝未授权访问数据库漏洞,尽快升级版本!
  2. DL之ResNeXt:ResNeXt算法的简介(论文介绍)、架构详解、案例应用等配图集合之详细攻略
  3. python运输问题_叶片运输优化问题学习笔记
  4. 在Linux上编写并运行Java文件
  5. 超级详细Ajax发送请求(接受提示信息或者返回参数)
  6. HAOI2018游记
  7. Xcode使用小技巧-filter查找功能和查看最近修改的文件
  8. matlab 2012 简明教程,MATLAB 2012简明教程
  9. API Guides Contacts Provider
  10. OpenCV测试摄像头帧率
  11. 华为网络设备与基础配置
  12. POSTGRESQL 一个“大” SQL 的优化历险记
  13. 20110609 WindowsLive Writer插件 测试
  14. 指纹存取控制系统的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  15. 仅需三个步骤,即可将wps转换成word
  16. SpriteKit从零开始~Physics and Collisions
  17. vue js 汉字转拼音
  18. 项目测试流程规范(不同公司流程规范不一样,仅供参考)
  19. elementplus 上传文件
  20. HIVE Parquet格式+snappy压缩及ORC格式+snappy压缩文件的方式

热门文章

  1. liu系统的混沌特性及其matlab仿真,Liu系统的混沌特性及其Matlab仿真
  2. 怎么能快速学会计算机,初学者怎样学习电脑能够快速入门(免费科普电脑基础知识)...
  3. selenium 自动化测试 Chrome 大于 63 版本 不能重定向问题解决办法
  4. 华为机试 - 数字涂色
  5. 手游入门必备基础知识
  6. 笔记本(DELL Vostro 3549)为什么固态硬盘要装到光驱位置
  7. h2o api java_H2O与Java线程同步
  8. gogo系统更新无服务器,gogo云服务器
  9. 通过虚拟机安装Ubuntu系统到移动硬盘
  10. 2020年中国保理行业市场现状分析,独立化、创新化和多产业渠道是发展关键「图」