这道题直接暴力枚举复杂度为 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的更多相关文章

随机推荐

  1. -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 ...

  2. synchronized(4)修饰语句块之:synchronized(this)

    synchronized(this) 此时,线程获得的是对象锁.例如: public class Thread8 extends Thread { public void sync_fun() { s ...

  3. Spirng MVC +Velocity 表单绑定命令对象

    通常,表单中的数据在提交之后可以通过Spring MVC的@RequestParam注解在控制器函数的参数列表中中提取出来,但是一旦表单数据过多的话,参数列表将会变得非常长,最好的解决方案是将表单中的 ...

  4. nvm安装nodejs

    1. 安装nvm 下载 nvm-windows解压缩 nvm-windows解压缩 nvm-setup双击运行 nvm-setup.exe选择next选择 [D:\dev][path1] 或 默认路径 ...

  5. 学习笔记 第八章 使用CSS美化列表

    第8章  使用CSS美化列表 8.1 列表的基本结构 在HTML中,列表结构可以分为两种基本类型:有序列表和无序列表.使用标签如下: <ul>...</ul>:标识无序列表: ...

  6. 一段js实现复制文本内容到剪切板

    <script type="text/javascript"> function copyUrl2() { var Url2=document.getElementBy ...

  7. webpack3整理(第二节/满三节)

    消除未使用的CSS:安装PurifyCSS-webpack插件 cnpm i purifycss-webpack purify-css -D const glob = require('glob'); ...

  8. MySQL基础、索引、查询优化等考察点

    MySQL基础 MySQL数据类型 整数类型 TINYINT. SMALLINT. MEDIUMINT. INT. BIGINT 属性:UNSIGNED 长度:可以为整数类型指定宽度,例如:INT(1 ...

  9. Java入门第39课——猜字母游戏之实现字母生成方法

    问题        实现猜字母游戏中的字母生成方法,即,随机生成5个不同的字母作为猜测的结果. 方案        实现generate方法,首先声明一个字符类型的数组,用于存储26个大写字母,然后声 ...

  10. fedora27安装ssh

    Fedora安装sshd 先确认是否已安装ssh服务: [root@localhost ~]# rpm -qa | grep openssh-server openssh-server-5.3p1-1 ...