HDU1755
这道题直接暴力枚举复杂度为 n!*m
但是k<100 , 所以我们可以通过取模用dp[i][j] 表示k=i 时,-x取模k为j的最小值
#include <cstdio>
#include <cstring>
#include <iostream> using namespace std; int vis[] , n , m , x , k , num[] , dp[][];
const int INF = ;
void dfs(int t , int state)
{
if(t >= n){
for(int i= ; i<=;i++)
if(dp[i][state%i] > state)
dp[i][state%i] = state;
return;
}
for(int i=;i<n;i++){
if(!vis[i]){
vis[i] = ;
dfs(t+ , state*+num[i]);
vis[i] = ;
}
}
} int main()
{
// freopen("a.in","rb",stdin);
//cout<<10*9*8*7*6*5*4*3*2*1<<endl;
while(scanf("%d%d",&n,&m) == ){
for(int i=;i<n;i++)
scanf("%d",num+i); memset(vis,,sizeof(vis)); for(int i=;i<=;i++)
for(int j=;j<=;j++) dp[i][j] = INF; for(int i=;i<n;i++){
if(num[i]){
vis[i] = ;
dfs(,num[i]);
vis[i] = ;
}
}
for(int i=;i<m;i++)
{
scanf("%d%d",&x,&k);
if(dp[k][(((-x)%k)+k)%k] < INF)
printf("%d\n",dp[k][(((-x)%k)+k)%k]); //state+x = b*k -> state%k = (-x)%k
else puts("None");
}
}
return ;
}
HDU1755的更多相关文章
随机推荐
- -Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME environment variable and mvn script match问题处理
使用MyEclipse运行Maven项目时报如下错误信息: -Dmaven.multiModuleProjectDirectory system property is not set. Check ...
- synchronized(4)修饰语句块之:synchronized(this)
synchronized(this) 此时,线程获得的是对象锁.例如: public class Thread8 extends Thread { public void sync_fun() { s ...
- Spirng MVC +Velocity 表单绑定命令对象
通常,表单中的数据在提交之后可以通过Spring MVC的@RequestParam注解在控制器函数的参数列表中中提取出来,但是一旦表单数据过多的话,参数列表将会变得非常长,最好的解决方案是将表单中的 ...
- nvm安装nodejs
1. 安装nvm 下载 nvm-windows解压缩 nvm-windows解压缩 nvm-setup双击运行 nvm-setup.exe选择next选择 [D:\dev][path1] 或 默认路径 ...
- 学习笔记 第八章 使用CSS美化列表
第8章 使用CSS美化列表 8.1 列表的基本结构 在HTML中,列表结构可以分为两种基本类型:有序列表和无序列表.使用标签如下: <ul>...</ul>:标识无序列表: ...
- 一段js实现复制文本内容到剪切板
<script type="text/javascript"> function copyUrl2() { var Url2=document.getElementBy ...
- webpack3整理(第二节/满三节)
消除未使用的CSS:安装PurifyCSS-webpack插件 cnpm i purifycss-webpack purify-css -D const glob = require('glob'); ...
- MySQL基础、索引、查询优化等考察点
MySQL基础 MySQL数据类型 整数类型 TINYINT. SMALLINT. MEDIUMINT. INT. BIGINT 属性:UNSIGNED 长度:可以为整数类型指定宽度,例如:INT(1 ...
- Java入门第39课——猜字母游戏之实现字母生成方法
问题 实现猜字母游戏中的字母生成方法,即,随机生成5个不同的字母作为猜测的结果. 方案 实现generate方法,首先声明一个字符类型的数组,用于存储26个大写字母,然后声 ...
- fedora27安装ssh
Fedora安装sshd 先确认是否已安装ssh服务: [root@localhost ~]# rpm -qa | grep openssh-server openssh-server-5.3p1-1 ...