Vijos1921严厉的班长
在贴吧上看到了这道题,恰好最近在学相关的东西,觉得比较有意思就去做了。
第一眼看上去比较像搜索,其实是道状压DP。我简单讲一下思路:
首先明确,不管之前取了什么数,取1必定满足所有的数之间互质。而且如果出现最优的可以是1或者其他,那么1一定是更优的
再思考,对于每个读入的数,合适的范围必定是[1,2*a[i]-2]
而且a[i]<=30,这就很好搞了。
我们表出来所有小于58的素数,把每个数有哪几个素因子二进制表示出来。然后然后如果满足前一个状态&这个数,如果满足的话就更新条件。
//Vijos 1921 //by Cydiater //2016.8.25 #include <iostream> #include <cstdio> #include <cstring> #include <ctime> #include <queue> #include <map> #include <cmath> #include <algorithm> #include <iomanip> #include <string> #include <cstdlib> using namespace std; #define ll long long #define up(i,j,n) for(int i=j;i<=n;i++) #define down(i,j,n) for(int i=j;i>=n;i--) <<|; const int oo=0x3f3f3f3f; inline int read(){ ,f=; ;ch=getchar();} +ch-';ch=getchar();} return x*f; } ]={,,,,,,,,,,,,,,,}; ],f[][MAXN],ans=oo; namespace solution{ inline int col(int num){ ; up(i,,)) tmp|=(<<i); return tmp; } void init(){ N=read(); up(i,,N)a[i]=read(); up(i,,)p[i]=col(i); } void dp(){ up(i,,N)up(S,,(<<)-)f[i][S]=oo; f[][]=; up(i,,N)up(S,,(<<)-)][S]!=oo){ f[i][S]=min(f[i][S],f[i-][S]+abs(-a[i])); )continue; up(j,,*a[i]-)][S]+abs(a[i]-j)); } } void output(){ up(S,,(<<)-)ans=min(ans,f[N][S]); cout<<ans<<endl; } } int main(){ //freopen("input.in","r",stdin); using namespace solution; init(); dp(); output(); ; }
Vijos1921严厉的班长的更多相关文章
- Vijos 1921 严厉的班长 【状态压缩动态规划】
严厉的班长 描述 木姑娘在班级里面是班长.虽然是副班长,却有着比正班长更高的威信,并深受小朋友们的爱戴. 每天眼保健操时间,木姑娘都要监督所有小朋友认真做眼保健操.整个过程被描述为n个时间段,第i个时 ...
- SaltStack 入门(赵班长)
SaltStack 入门之赵班长 赵班长博客: https://www.unixhot.com/article/11 1~5章 saltstack官网文档: https://www.unixhot ...
- C# 5 break continue 球员成绩 彩票 选班长
二.新课: 1.break与continue. 这两个关键字一般放在循环的花括号里面使用. break--结束整个循环. continue--结束本次循环,进入下次循环. break的案例: ...
- C++第11周(春)项目1 - 存储班长信息的学生类
课程首页在:http://blog.csdn.net/sxhelijian/article/details/11890759,内有完整教学方案及资源链接 [项目1 - 存储班长信息的学生类] clas ...
- [vijos 1642]班长的任务 [树形dp]
背景 十八居士的毕业典礼(1) 描述 福州时代中学2009届十班同学毕业了,于是班长PRT开始筹办毕业晚会,但是由于条件有限,可能每个同学不能都去,但每个人都有一个权值,PRT希望来的同学们的权值总和 ...
- 百度搜索推出惊雷算法严厉打击刷点击作弊行为-SEO公司分享
百度搜索推出惊雷算法严厉打击刷点击作弊行为 2017年11月20日凌晨,百度搜索引擎发布更新惊雷算法旨在打击刷点击作弊行为. 下面是惊雷算法相关新闻报道: 百度搜索将于11月底推出惊雷算法,严厉打击通 ...
- [vijos]P1642 班长的任务
背景 十八居士的毕业典礼(1) 描述 福州时代中学2009届十班同学毕业了,于是班长PRT开始筹办毕业晚会,但是由于条件有限,可能每个同学不能都去,但每个人都有一个权值,PRT希望来的同学们的权值总和 ...
- [转] 运维知识体系 -v3.1 作者:赵舜东(赵班长)转载请注明来自于-新运维社区:https://www.unixhot.com
[From]https://www.unixhot.com/page/ops [运维知识体系]-v3.1 作者:赵舜东(赵班长) (转载请注明来自于-新运维社区:https://www.unixhot ...
- C++走向远洋——(项目二、存储班长信息的学生类、派生)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
随机推荐
- 20160307 - 双击打开 Js 扩展名的附件要保持留心
Windows Script Host 技术是一门很老的技术,它让 Windows 的自带脚本 VBScript 和 JScript 可以操作 Windows ActiveX 对象,这样的脚本具有本地 ...
- Xen
Xen是一个开放源代码虚拟机监视器,由剑桥大学开发.它打算在单个计算机上运行多达128个有完全功能的操作系统. 在旧(无虚拟硬件)的处理器上执行Xen,操作系统必须进行显式地修改(“移植”)以在Xen ...
- Android多线程文件下载
版本信息 apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion " ...
- Golang操作数据库
基本概念 Open() – creates a DB Close() - closes the DB Query() - 查询 QueryRow() -查询行 Exec() -执行操作,update, ...
- C# EventHandler and Delegate(委托的使用)
委托的声明 public delegate void MyDelegate(string str); 注 1.委托的定义和方法的定义类似,只是在前面加了一个delegate,但委托不是方法,它是一种特 ...
- 【瞎想】TDD与汉字;FDD与英语字母
我觉得TDD与汉字;FDD与英语字母他们之间有相似性. FDD的上行和下行用频率的不同来区分,TDD的上行和下行用相同的频率然后在同一时刻相差半个波长(对称频率).如果用维度数描述,FDD是1维的话, ...
- 【BZOJ 3527】【ZJOI 2014】力
代换一下变成多项式卷积,这里是的答案是两个卷积相减,FFT求一下两个卷积就可以啦 详细的题解:http://www.cnblogs.com/iwtwiioi/p/4126284.html #inclu ...
- hibernate-DetachedCriteria实现关联表条件复查
表结果如下 CREATE TABLE `ent_lable` ( `idStr` ) NOT NULL, `pk_1` ) NOT NULL, `pk_2` ) NOT NULL, PRIMARY K ...
- 自定义View完全解析
自定义View主要包括以下3种方式: 一.组合控件,利用已有控件的组合,来满足自己的需求. 例子:顶部导航栏 二.继承已有View,比如继承TextView.ImageView等,根据需要重写相应的方 ...
- 【POJ 2826】An Easy Problem?!(几何、线段)
两个木条装雨水能装多少. 两线段相交,且不遮盖的情况下才可能装到水. 求出交点,再取两线段的较高端点的较小值h,(h-交点的y)为三角形的高. 三角形的宽即为(h带入两条线段所在直线得到的横坐标的差值 ...