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 ...
随机推荐
- ALinq Dynamic 使用指南——前言
一.简介 ALinq Dynamic 为ALinq以及Linq to SQL提供了一个Entiy SQL的查询接口,使得它们能够应用Entity SQL 进行数据的查询.它的原理是将Entiy SQL ...
- mac搭建mamp环境
1 先安装homebrew; 执行:cd /usr/local; 非root用户执行: ruby -e "$(curl -fsSL https://raw.githubusercontent ...
- SQL-Server下载地址
有同学费尽心思的找SQL server数据库各版本的下载地址,看到别人的求助贴就不自觉的想去帮助他们,但是一个一个去帮助又不太现实,毕竟个人精力有限,既然大家有需求,那么艾薇百科今天就本着乐于分享和奉 ...
- CSS3自动添加省略号
text-overflow:ellipsis; white-space:nowrap; overflow:hidden; 不换行,一行显示溢出时,文本自动换行.以前都是js计算的,现在可好. elli ...
- Criteria查询之sqlRestriction()的理解
sqlRestriction()的理解 在Criteria查询中 使用sqlRestriction()方法来提供SQL语法作限定查询,作为where字句 查看官方给的例子,如下 List cats = ...
- springMVC之applicationcontext.xml配置说明
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- 升級 Centos 6.5 的 php 版本
升級 Centos 6.5 的 php 版本 待會再看 Centos 6.5 的 php 預設是用 5.3.3 這個版本號 最近想要改用 Laravel 4.1 發現需要 5.3.7 才能用,所以 ...
- FastDFS搭建及java整合代码【转】
FastDFS软件介绍 1.什么是FastDFS FastDFS是用C语言编写的一款开源的分布式文件系统.FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高 ...
- jar-下载站点
nutch: http://archive.apache.org/dist/nutch/ jarfire: http://cn.jarfire.org/ solr: http://archive.ap ...
- Html-Css标签lable中定义宽度需要其他的支持
lable的标签如果定义了width,如果要使起生效,则需要定义display width: 130px; display: inline-block;