BZOJ 2469 [中山市选2010]简单数谜
一道搜索题
比较基础(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]简单数谜相关推荐
- [bzoj2467][中山市选2010]生成树_快速幂
生成树 bzoj-2467 中山市选2010 题目大意:题目链接 注释:略. 想法:首先,考虑生成树的性质.每两个点之间有且只有一条路径.我们将每个五边形的5条边分为外面的4条边和内部的一条边,在此简 ...
- BZOJ 2440: [中山市选2011]完全平方数 [容斥原理 莫比乌斯函数]
2440: [中山市选2011]完全平方数 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 3028 Solved: 1460 [Submit][S ...
- bzoj 2464: 中山市选[2009]小明的游戏(BFS)
2464: 中山市选[2009]小明的游戏 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 963 Solved: 394 [Submit][Sta ...
- bzoj 2440: [中山市选2011]完全平方数(二分+莫比乌斯函数)
2440: [中山市选2011]完全平方数 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 4018 Solved: 1952 [Submit][S ...
- [BZOJ 2438] [中山市选2011]杀人游戏 Tarjan缩点
这个题很容易想到正解就是缩点找入度为零的点,那么我们考虑一种特殊情况就是,一个入度为零的点我们不访问他就知道他是不是凶手,那么这样的话就是:I. 他是一个真·孤立的点 II. 他在图里但是在他的强联通 ...
- BZOJ 2440: [中山市选2011]完全平方数
Time Limit: 10 Sec Memory Limit: 128 MB Submit: 5160 Solved: 2515 [Submit][Status][Discuss] Descript ...
- BZOJ 2466 中山市选2009 树 高斯消元+暴力
题目大意:树上拉灯游戏 高斯消元解异或方程组,对于全部的自由元暴力2^n枚举状态,代入计算 这做法真是一点也不优雅... #include <cstdio> #include <cs ...
- bzoj 2440: [中山市选2011]完全平方数【莫比乌斯函数+二分】
二分答案,然后用莫比乌斯函数作为容斥系数,计算当前枚举的mid内有几个满足要求的数 #include<iostream> #include<cstdio> #include&l ...
- BZOJ 2466 [中山市选2009]树(高斯消元)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2466 [题目大意] 给定一棵树,每个节点有一盏指示灯和一个按钮.如果节点的按扭被按了, ...
- bzoj千题计划169:bzoj2463: [中山市选2009]谁能赢呢?
http://www.lydsy.com/JudgeOnline/problem.php?id=2463 n为偶数时,一定可以被若干个1*2 矩形覆盖 先手每次从矩形的一端走向另一端,后手每次走向一个 ...
最新文章
- 剑指offer青蛙跳台阶问题
- 【云周刊】第146期:史上最大规模人机协同的双11,12位技术大V揭秘背后黑科技...
- 快速在PowerPoint文档中添加图表
- SpringBoot+MySQL+MyBatis+Shiro+AdminLTE
- docker 推送镜像到私有地址
- 【SVM最后一课】详解烧脑的Support Vector Regression
- 头部外伤指什么_什么是颅骨缺损?
- python的selenium模块_Python中Selenium模块的使用
- windows中squid更改默认安装路径配置说明
- 如何用jQuery访问后台API,实现真正的前后端分离
- Adobe Dreamweaver CS6(或者CC 2018.2 SP)安装失败解决方案
- (五)作业Job和实例Instance | 普罗米修斯(Prometheus)
- 软件测试员的日常逗逼瞬间
- 中国十大邮箱排名,教育邮箱,企业邮箱怎么弄?
- 黑苹果 双系统 macos 与Windows蓝牙设备共享
- 秒懂 堆栈寻址 STMFA STMFD LDMFA LDMED( ARM中的汇编指令)
- 第8周 项目5 定期存款利息计算器
- 熊海CMS 1.0代码审计漏洞集合
- 整理的程序员使用利器(工具)
- labview 和lin 通讯_LABVIEW与API通讯
热门文章
- 基础网络函数介绍及其Cpp实例(C++)
- 使用paramiko在eNSP的交换机中批量创建VLAN
- LAMP+Varnish缓存详解(一)——Varnish简介
- MarkdownPad下载安装图文详解
- 反向代理和负载均衡有何区别?
- HashMap底层实现(源码分析)
- NO.128 开发团队篇:参加项目计划会议,分解任务,领取任务,每天更新任务。...
- centos 6.5 httpd 服务
- java类转为update_[转] Maven更新父子模块的版本号, mvn versions:set
- css工程师技巧,web前端工程师必须掌握的技巧–CSS Sprites技术(附基础操作教程)...