洛谷2105 k皇后
P2105 K皇后
题目描述
小Z最近捡到了一个棋盘,他想在棋盘上摆放K个皇后。他想知道在他摆完这K个皇后之后,棋盘上还有多少了格子是不会被攻击到的。
(Ps:一个皇后会攻击到这个皇后所在的那一行,那一列,以及两条对角线)
输入输出格式
输入格式:
第一行三个正整数 n,m,K,表示棋盘的行列,以及小Z摆放了K个皇后。
接下来K行,每行两个正整数x,y,表示这个皇后被摆在了第x行,第y列,数据保证没有任何两个皇后会被摆在同一个格子里。
输出格式:
一行一个整数,表示棋盘上还有多少了格子是不会被攻击到的。
输入输出样例
- 12 13 6
- 10 4
- 12 10
- 1 1
- 2 3
- 3 2
- 2 6
- 25
说明
【数据规模和约定】
对于 30%的数据,1 ≤ n,m ≤ 5000,1 ≤ k ≤ 500。
对于另外 10%的数据,k =1。
对于 100%的数据,1 ≤ n,m ≤ 20000,1 ≤ k ≤ 500。
【时空限制】
1s/16M
枚举一行
{
枚举一个皇后
{
皇后控制的一行就是这一行continue
皇后控制的一列存在于这一行的位置没有讨论过ans++,标记
皇后控制的一条对角线存在于这一行的位置没有讨论过ans++,标记
皇后控制的另一条对角线存在于这一行的位置没有讨论过ans++,标记
}
}
- #include <cstdio>
- #include <cstdlib>
- #include <cstring>
- using namespace std;
- int x[],y[],h[];
- int main()
- {
- int n,m,k,i,j,ans,t;
- scanf("%d%d%d",&n,&m,&k);
- memset(h,,sizeof(h));
- for (i=;i<=k;i++) scanf("%d%d",&x[i],&y[i]);
- ans=;
- for (i=;i<=n;i++)
- {
- t=m;
- for (j=;j<=k;j++)
- if (x[j]==i)
- {
- t=;
- break;
- }
- else
- {
- if (h[y[j]]!=i)
- {
- h[y[j]]=i;
- t--;
- }
- if ((i+y[j]-x[j])> && (i+y[j]-x[j])<=m && h[i+y[j]-x[j]]!=i)
- {
- h[i+y[j]-x[j]]=i;
- t--;
- }
- if ((y[j]+x[j]-i)> && (y[j]+x[j]-i)<=m && h[y[j]+x[j]-i]!=i)
- {
- h[y[j]+x[j]-i]=i;
- t--;
- }
- }
- ans+=t;
- }
- printf("%d\n",ans);
- return ;
- }
洛谷2105 k皇后的更多相关文章
- 洛谷P2105 K皇后
To 洛谷.2105 K皇后 题目描述 小Z最近捡到了一个棋盘,他想在棋盘上摆放K个皇后.他想知道在他摆完这K个皇后之后,棋盘上还有多少了格子是不会被攻击到的. (Ps:一个皇后会攻击到这个皇后所在的 ...
- 洛谷 P2105 K皇后
P2105 K皇后 题目描述 小Z最近捡到了一个棋盘,他想在棋盘上摆放K个皇后.他想知道在他摆完这K个皇后之后,棋盘上还有多少了格子是不会被攻击到的. (Ps:一个皇后会攻击到这个皇后所在的那一行,那 ...
- 洛谷 P1219 八皇后【经典DFS,温习搜索】
P1219 八皇后 题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序 ...
- 洛谷 p1219 八皇后
刚参加完蓝桥杯 弱鸡错了好几道..回头一看确实不难 写起来还是挺慢的 于是开始了刷题的道路 蓝桥杯又名搜索杯 暴力杯...于是先从dfs刷起 八皇后是很经典的dfs问题 洛谷的这道题是这样的 上面的布 ...
- 洛谷P1219 八皇后【dfs】
题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 ...
- 洛谷2483 k短路([SDOI2010]魔法猪学院)
题目请戳这里 一句话题意: 给你一张n个节点,m条单向边的图,求1到n第k短的路. emmm,纪念第一个黑题(我是真的菜啊!!) 这题目还是很难的,本蒟蒻只会被洛谷卡掉的A(所以就愉快地特判了),首先 ...
- 【洛谷P1219 八皇后】
参考思路见白书(一本通) 题目链接 题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上 ...
- 洛谷 P1219 八皇后题解
题目描述 检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子. 上面的布局可以用序列2 4 6 1 3 ...
- 洛谷P2045 K方格取数(算竞进阶习题)
费用流 又是一道网络流的模型,对于这种费用与经过次数有关的边,我们经常把边拆成多条,比如这个题,第一次费用是x,第二次是0,我们就可以先把点拆成入点和出点,入点和出点又连两条边,第一条容量为1,费用为 ...
随机推荐
- python之学习
------------------------------------------ 基本语句解析 import:导入某些模块或者文件 import random: 导入生成随机数模块 import ...
- Java性能分析方法
Java调优经验 http://www.rowkey.me/blog/2016/11/02/java-profile/
- Algorithm: pattern searching
kmp算法:用一个数组保存了上一个需要开始搜索的index,比如AAACAAA就是0, 1, 2, 0, 1, 2, 3, ABCABC就是0, 0, 0, 1, 2, 3,复杂度O(M+N) #in ...
- 【ES6】更易于继承的类语法
和其它面向对象编程语言一样,ES6 正式定义了 class 类以及 extend 继承语法糖,并且支持静态.派生.抽象.迭代.单例等,而且根据 ES6 的新特性衍生出很多有趣的用法. 一.类的基本定义 ...
- RAC环境下控制文件损坏重建过程
处理过程参考了: https://blogs.oracle.com/Database4CN/entry/%E5%A6%82%E4%BD%95%E9%87%8D%E5%BB%BArac%E7%9A%84 ...
- tensorflow 实现逻辑回归——原以为TensorFlow不擅长做线性回归或者逻辑回归,原来是这么简单哇!
实现的是预测 低 出生 体重 的 概率.尼克·麦克卢尔(Nick McClure). TensorFlow机器学习实战指南 (智能系统与技术丛书) (Kindle 位置 1060-1061). Kin ...
- linux命令学习笔记(47):iostat命令
Linux系统中的 iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视. 它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况. ...
- 苹果手机app试玩平台汇总--手机链接入口
注意: 点击下载,根据提示步骤走即可. 下载后绑定手机号和微信后.才能提现 每天3点更新任务,4点最多! | 平台 | 提现额 | 任务量| 推荐强度 | 下载 | 1.小鱼,10元,大量,强推! → ...
- 集训Day11
别人的题公开原题面不好 写题解吧 T1 很明显答案满足二分,二分之后算出每个人的位置,做一个LIS即可 T2 阅读体验极差 T3 根本不会 交都没交 期望得分200
- ASM认证与口令文件
ASM认证 ORACLE ASM 实例没有数据字典,所以连接ASM 实例只能通过如下三种系统权限来进行连接: SYSASM,SYSDBA,SYSOPER. 可以通过如下三种模式来连接ASM 实例:1. ...