一道搜索题

比较基础(hh,下午出这题我就玩完了)

要加剪枝,把自己能想到的剪枝都加上去

#include <stdio.h>
int read(){int x=0,f=1,ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
int min(int x,int y){return x>y?y:x;
}
int cal(int x){int res=1;while(!(x&1)) x>>=1,res++;return res;
}
int a[10][10];
int b[10],c[10];
int hhd[10][10];
int num[10],cnt[10];
int n,m,ans;
void print(){for(int i=1;i<=n;i++){for(int j=1;j<=m;j++) printf("%d ",hhd[i][j]);puts("");}
}
void dfs(int x,int y){if(x==n+1){for(int i=1;i<=m;i++)if(c[i])return ;ans++;return ;}if(y==m+1){if(b[x]) return ;dfs(x+1,1);return ;}if(a[x][y]!=-1){dfs(x,y+1);return;}int i;for(i=num[x]&cnt[y];i;i-=i&(-i)){int id=i&(-i);int kk=cal(id);if(kk>b[x]||kk>c[y]) return ;b[x]-=kk;c[y]-=kk;num[x]-=id;cnt[y]-=id;if(ans==0) hhd[x][y]=kk;dfs(x,y+1);b[x]+=kk;c[y]+=kk;num[x]+=id;cnt[y]+=id;if(ans>1) return ;}
}
int main(){int T=read(),i,j;while(T--){n=read(),m=read();ans=0;for(i=1;i<=n;i++) b[i]=read(),num[i]=(1<<9)-1;for(j=1;j<=m;j++) c[j]=read(),cnt[j]=(1<<9)-1;for(i=1;i<=n;i++)for(j=1;j<=m;j++){a[i][j]=read()-1;if(a[i][j]!=-1) num[i]^=(1<<a[i][j]),cnt[j]^=(1<<a[i][j]),b[i]-=a[i][j]+1,c[j]-=a[i][j]+1,hhd[i][j]=a[i][j]+1;}dfs(1,1);if(ans>1) puts("Not unique.");else if(ans==0) puts("No answer.");else print();}return 0;
}

  

转载于:https://www.cnblogs.com/gcyyzf/p/9956590.html

BZOJ 2469 [中山市选2010]简单数谜相关推荐

  1. [bzoj2467][中山市选2010]生成树_快速幂

    生成树 bzoj-2467 中山市选2010 题目大意:题目链接 注释:略. 想法:首先,考虑生成树的性质.每两个点之间有且只有一条路径.我们将每个五边形的5条边分为外面的4条边和内部的一条边,在此简 ...

  2. BZOJ 2440: [中山市选2011]完全平方数 [容斥原理 莫比乌斯函数]

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 3028  Solved: 1460 [Submit][S ...

  3. bzoj 2464: 中山市选[2009]小明的游戏(BFS)

    2464: 中山市选[2009]小明的游戏 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 963  Solved: 394 [Submit][Sta ...

  4. bzoj 2440: [中山市选2011]完全平方数(二分+莫比乌斯函数)

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 4018  Solved: 1952 [Submit][S ...

  5. [BZOJ 2438] [中山市选2011]杀人游戏 Tarjan缩点

    这个题很容易想到正解就是缩点找入度为零的点,那么我们考虑一种特殊情况就是,一个入度为零的点我们不访问他就知道他是不是凶手,那么这样的话就是:I. 他是一个真·孤立的点 II. 他在图里但是在他的强联通 ...

  6. BZOJ 2440: [中山市选2011]完全平方数

    Time Limit: 10 Sec Memory Limit: 128 MB Submit: 5160 Solved: 2515 [Submit][Status][Discuss] Descript ...

  7. BZOJ 2466 中山市选2009 树 高斯消元+暴力

    题目大意:树上拉灯游戏 高斯消元解异或方程组,对于全部的自由元暴力2^n枚举状态,代入计算 这做法真是一点也不优雅... #include <cstdio> #include <cs ...

  8. bzoj 2440: [中山市选2011]完全平方数【莫比乌斯函数+二分】

    二分答案,然后用莫比乌斯函数作为容斥系数,计算当前枚举的mid内有几个满足要求的数 #include<iostream> #include<cstdio> #include&l ...

  9. BZOJ 2466 [中山市选2009]树(高斯消元)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2466 [题目大意] 给定一棵树,每个节点有一盏指示灯和一个按钮.如果节点的按扭被按了, ...

  10. bzoj千题计划169:bzoj2463: [中山市选2009]谁能赢呢?

    http://www.lydsy.com/JudgeOnline/problem.php?id=2463 n为偶数时,一定可以被若干个1*2 矩形覆盖 先手每次从矩形的一端走向另一端,后手每次走向一个 ...

最新文章

  1. 剑指offer青蛙跳台阶问题
  2. 【云周刊】第146期:史上最大规模人机协同的双11,12位技术大V揭秘背后黑科技...
  3. 快速在PowerPoint文档中添加图表
  4. SpringBoot+MySQL+MyBatis+Shiro+AdminLTE
  5. docker 推送镜像到私有地址
  6. 【SVM最后一课】详解烧脑的Support Vector Regression
  7. 头部外伤指什么_什么是颅骨缺损?
  8. python的selenium模块_Python中Selenium模块的使用
  9. windows中squid更改默认安装路径配置说明
  10. 如何用jQuery访问后台API,实现真正的前后端分离
  11. Adobe Dreamweaver CS6(或者CC 2018.2 SP)安装失败解决方案
  12. (五)作业Job和实例Instance | 普罗米修斯(Prometheus)
  13. 软件测试员的日常逗逼瞬间
  14. 中国十大邮箱排名,教育邮箱,企业邮箱怎么弄?
  15. 黑苹果 双系统 macos 与Windows蓝牙设备共享
  16. 秒懂 堆栈寻址 STMFA STMFD LDMFA LDMED( ARM中的汇编指令)
  17. 第8周 项目5 定期存款利息计算器
  18. 熊海CMS 1.0代码审计漏洞集合
  19. 整理的程序员使用利器(工具)
  20. labview 和lin 通讯_LABVIEW与API通讯

热门文章

  1. 基础网络函数介绍及其Cpp实例(C++)
  2. 使用paramiko在eNSP的交换机中批量创建VLAN
  3. LAMP+Varnish缓存详解(一)——Varnish简介
  4. MarkdownPad下载安装图文详解
  5. 反向代理和负载均衡有何区别?
  6. HashMap底层实现(源码分析)
  7. NO.128 开发团队篇:参加项目计划会议,分解任务,领取任务,每天更新任务。...
  8. centos 6.5 httpd 服务
  9. java类转为update_[转] Maven更新父子模块的版本号, mvn versions:set
  10. css工程师技巧,web前端工程师必须掌握的技巧–CSS Sprites技术(附基础操作教程)...