集训作业 洛谷P3913 车的攻击】的更多相关文章

这个题一开始被我想复杂了,但总体差不多. 脑子清醒后我直接看他占领了几条长,几条宽,比如一个长3宽3的地图. 被占领了一条宽,就可以看成一个长3宽2的地图.这个长3宽2的地图就是出去可以被攻击的点剩下的格子的数量. 所以就可以写代码了: #include<iostream> #include<cstdio> #include<map> #include<cmath> #include<algorithm> using namespace std;…
P3913 车的攻击 题目描述 N \times NN×N 的国际象棋棋盘上有KK 个车,第ii个车位于第R_iRi​行,第C_iCi​ 列.求至少被一个车攻击的格子数量. 车可以攻击所有同一行或者同一列的地方. 输入输出格式 输入格式: 第1 行,2 个整数N,KN,K. 接下来K 行,每行2 个整数R_i,C_iRi​,Ci​. 输出格式: 1 个整数,表示被攻击的格子数量. 输入输出样例 输入样例#1: 复制 3 2 1 2 2 2 输出样例#1: 复制 7 说明 • 对于30% 的数据,…
P3913 车的攻击 题目描述 N \times NN×N 的国际象棋棋盘上有KK 个车,第ii个车位于第R_iRi​行,第C_iCi​ 列.求至少被一个车攻击的格子数量. 车可以攻击所有同一行或者同一列的地方. 输入输出格式 输入格式: 第1 行,2 个整数N,KN,K. 接下来K 行,每行2 个整数R_i,C_iRi​,Ci​. 输出格式: 1 个整数,表示被攻击的格子数量. 输入输出样例 输入样例#1: 复制 3 2 1 2 2 2 输出样例#1: 复制 7 说明 • 对于30% 的数据,…
集训的题目有点多,先写困难的绿题吧(简单的应该想想就会了) 嗯,这个题看起来像个搜索呢(就是个搜索) 我们仔细想想就知道这个题肯定不能用深搜,可以优化的地方太少了,TLE是必然的. 那我们该怎么办呢? 很简单,用选代加深啊,我真是个睿(弱)智的小孩. 一遍自认为很强大的选代加深后: 嗯,放弃了. 明显以我的能力驾驭不了选代加深,优化不够…… 我只能用优化力度更大的广搜了. 什么?为啥早不用?我说了,我是个睿(弱)智的小孩. 广搜可以用的优化更多了,有一个神奇的东西叫做记忆化,广搜有个特点,如果这…
这个题的长度真的有点长,我直接放图片吧 这个题又是一个和谐的搜索,找到yizhong的y就开始8面搜索,遇见正确的字母就继续搜索,不正确就果断放弃,果然又是一个和谐的搜索呢. #include<iostream> #include<string> #include<cstdio> using namespace std; string a[300],shu[300]; int aa[8]={0,-1,-1,-1,0,1,1,1},bb[8]={1,1,0,-1,-1,-…
这个…… 这个题看上去有点难的样子. 仔细看看,感觉有点简单.啊,是递归啊,正经的看一看,好像是把一个数分成2的几次方的和. 然后余数和比他小的最大的2的次方数如果不是2的一次方或者2的0次方,就继续递归. 仔细一想貌似很简单,只不过余数是在括号外面,商是在里面的,这种小事稍微写写就可以了. 直接代码吧,这题除了题意有点复杂以外还行…… #include<iostream> #include<cstdio> using namespace std; long long m; lon…
这个题我见过!!! 我之前在石油大学的网站上做练习赛,提高了很多,这个题是我第一次在比赛里见到深搜. 当时蒙蔽的一批,现在发现好简单…… 这个题和普通的深搜没什么区别,甚至可以说简单了,因为这个是1维的,别的是二维的(见到老熟人,我快高兴疯了). 我们先来个代码吧,解释什么的写进注释里了: #include<iostream> #include<cstdio> using namespace std; long long a,b,n; long long k[300]; long…
嗯?这题竟然是个绿题. 这个题真的不难,不要被他的难度吓到,我们只是不会计算2点之间的距离,他还给出了公式,这个就有点…… 我们直接套公式去求出需要的值,然后普通的搜索就可以了. 这个题我用的深搜,因为广搜没什么意义. #include<iostream> #include<string> #include<algorithm> #include<cmath> #include<cstdio> struct z { double x,y; }g[…
这个题是个搜索,而且有是最少的步数,肯定就是广搜啦,不知道为什么的同学先去学习一下广搜吧. 养成好习惯,看见最少步数就去想想广搜(只是我自己觉得) 竟然这个题可以如此顺畅的想到广搜,感觉不难啊,但还有一个奇怪的地方, emm,这个有点冷门啊,没事,讲讲(百度一下)就知道了. 奉上百度答案:printf("%-5d",x); 这句话的意思就是左对齐,宽5格,输出x. 到这里我们几乎就全讲完了(我讲的好水,听不的懂的同学去隔壁dgdger的博客看看吧,传送门) 广搜嘛,我直接附上之前讲广搜…
这个题是个数学题啊. 总体思路不是很难,每个兔子有一个编号,只要不停的看下一个兔子有多少可选编号,再乘上之前的所有可能性就可以算出一共的编号方法. #include<iostream> #include<cstdio> #include<algorithm> using namespace std; long long n,a[100],shu=1; int main() { cin>>n; for(int i=0;i<n;i++) { cin>…
这个题的题目真的太恶心了. 重点是他的题目描述和他的目标没啥关系. 和最终目的有关系的只有这么一句话:”输出此负进制数及其基数,若此基数超过10,则参照16进制的方法处理.“ 我们通过看这句话可以发现,这就是个带负数进制的进制转换!!! 所以一点都不难,但负数有时候会出现一些奇怪的事情,比如让他的余数变成负数.这样的话就要用到我们小学都学过的一个知识点了. 一个数不够减怎么办?向前一位借.就是这么简单,我们把这个地方特判一下就好了. #include<iostream> #include<…
这个题简单来说就是把一个数转成32位的2进制数,不够的补0.然后把这个数的前半部分和后半部分互换,再计算结果. 思路简单明了,接下来是代码: #include<iostream> #include<cstdio> #include<map> #include<cmath> using namespace std; long long a,b,shu[50],s=1,zshu; int main() { scanf("%lld",&…
这个题的代码真的是短的不得了呢. 有个神奇的东西叫异或,写起来是这个样子的^. 这个东西可以查看2个数的二进制某位是否相同,相同取0,不同取1.虽然我用的不熟,但我可以想出来,如果2个相同的数异或,答案一定是0.因为他们每一位都一样嘛. 而且异或是满足交换律的,顺序什么的不重要,于是我们只要把所有数异或起来,看剩下的数是那个,那个就是多出来的筷子. 短小的代码: #include<iostream> #include<cstdio> #include<map> #inc…
这个题目就是让我们实现进制的转换. 我只会很简单的把他从一个别的进制转化成10进制,然后再继续转化成目标进制. #include<iostream> #include<cstdio> #include<map> #include<cmath> using namespace std; long long a,b,shu,hh,e[100]; string s,jg; string sz=0123456789ABCDEF;//这是最后用来转化输出的,我不想把1…
洛谷 P1350 车的放置 题目描述 有下面这样的一个网格棋盘,a,b,c,d表示了对应边长度,也就是对应格子数. 当a=b=c=d=2时,对应下面这样一个棋盘 要在这个棋盘上放K个相互不攻击的车,也就是这K个车没有两个车在同一行,也没有两个车在同一列,问有多少种方案.同样只需要输出答案mod 100003后的结果. 输入输出格式 输入格式: 输入文件place.in的第1行为有5个非负整数a, b, c, d和k. 输出格式: 输出文件place.out包括1个正整数,为答案mod 10000…
洛谷P1350:https://www.luogu.org/problemnew/show/P1350 思路 把矩阵分为上下两块N与M 放在N中的有i辆车 则放在M中有k-i辆车 N的长为a   宽为b M的长为a+c   宽为d 在每个矩阵中的放置种类公式如下: A(长度,车辆)*C(宽度,车辆) 给出证明: 比如对于N来说 可以在a列中找出i列放入车 所以是A(a,i) 而且有C(b,i)种选择列的方式 由此可得 枚举放在N和M的车有几辆 并计算两个矩阵种类之积即可 PS:对于矩阵M来说A为…
题目描述 N×N 的国际象棋棋盘上有KK 个车,第ii个车位于第R_i行,第C_i列.求至少被一个车攻击的格子数量. 车可以攻击所有同一行或者同一列的地方. 输入格式 第1 行,2 个整数N,K. 接下来K 行,每行2 个整数R_i,C_i 输出格式 1 个整数,表示被攻击的格子数量. #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespa…
大致题意: 求出被车攻击到的格子 基本思路: 如果直接暴力出奇迹的话是存不下的, 所以就以另外的思路来想. 容斥原理! 我们可以先把那些在同一行或同一列的车去重,然后把去重后的行数列数记作cntx,cnty, 然后以cntx*n+cnty*n为答案,但是这答案里面有重复的,那么有多少重复的呢? 先看一幅图: 那么减去cntx*cnty就是最终的答案了. Code: #include <iostream> #include <cstdio> #include <cstring&…
小K是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客. 小K对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况:对于第i艘到达的船,他记录了这艘船到达的时间ti (单位:秒),船上的乘 客数星ki,以及每名乘客的国籍 x(i,1), x(i,2),…,x(i,k);. 小K统计了n艘船的信息,希望你帮忙计算出以每一艘船到达时间为止的24小时(24小时=86400秒)内所有乘船到达的乘客来自多少个不同的国家. 形式化地讲,你需要计算n条信…
[P3817 小A的糖果 小A有N个糖果盒,第i个盒中有a[i]颗糖果. 小A每次可以从其中一盒糖果中吃掉一颗,他想知道,要让任意两个相邻的盒子中加起来都只有x颗或以下的糖果,至少得吃掉几颗糖. [贪心策略]: 因为吃后面的可以影响后面的情况.所以一旦不满足就吃后面的即可. #include<bits/stdc++.h> using namespace std; typedef long long ll; ; ll a[N] , n , x ; int main() { ios_base ::…
题目传送门:洛谷P4396. 题意简述: 给定一个长度为\(n\)的数列.有\(m\)次询问,每次询问区间\([l,r]\)中数值在\([a,b]\)之间的数的个数,和数值在\([a,b]\)之间的不同的数的个数. 题解: 第一问可以用主席树维护,但是第二问呢? 考虑离线处理询问,用莫队算法. 问题转化为加入一个数,删除一个数,统计数值在一个区间中的数的个数. 离散化后可以用树状数组维护,但是复杂度多个log,变成了\(O(n\sqrt{n}\log n)\). 考虑对数值也分块,先离散化,然后…
题目: 洛谷4396 BZOJ3236(权限) 这题似乎BZOJ上数据强一些? 分析: 这题真的是--一言难尽 发现题面里没说权值的范围,怕出锅就写了离散化.后来经过面向数据编程(以及膜神犇代码)知道最大权值\(1e5\)(下文用\(M\)表示最大权值.注意如果没有这个限制,把所有数的权值和询问中提到的权值一起离散化后\(M\)也可以达到\(n+2m=2.1e6\)),如果没这个限制我很想知道正解应该怎么写--下面再细说 首先看到这种询问某个区间内在某个区域内值的数量的题,显然能想到把询问离线下…
洛谷题面传送门 题解里一堆密密麻麻的 Raney 引理--蒟蒻表示看不懂,因此决定写一篇题解提供一个像我这样的蒟蒻能理解的思路,或者说,理解方式. 首先我们考虑什么样的牌堆顺序符合条件.显然,在摸牌任意时刻,你手中的牌允许你继续无限制摸的牌是一段区间,即存在一个位置 \(p\),满足你在不使用新摸出来的牌的机会下能够恰好摸到第 \(p\) 张牌.考虑如果我们新摸出来一张牌会产生怎样的影响,假设摸出一张 \(w_i=x\) 的牌,那么我们肯定会在耗完目前手中牌的机会,也就是摸完第 \(p\)​ 张…
题目描述 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦 创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争.泰山压 顶集团派宇宙舰队司令莱因哈特率领十万余艘战舰出征,气吞山河集团点名将杨 威利组织麾下三万艘战舰迎敌. 杨威利擅长排兵布阵,巧妙运用各种战术屡次以少胜多,难免恣生骄气.在 这次决战中,他将巴米利恩星域战场划分成30000列,每列依次编号为1, 2, …, 30000.之后,他把自己的战舰也依次编号…
题目描述 司令部的将军们打算在N*M的网格地图上部署他们的炮兵部队.一个N*M的地图由N行M列组成,地图的每一格可能是山地(用“H” 表示),也可能是平原(用“P”表示),如下图.在每一格平原地形上最多可以布置一支炮兵部队(山地上不能够部署炮兵部队):一支炮兵部队在地图上的攻击范围如图中黑色区域所示(我就不贴图) 如果在地图中的灰色所标识的平原上部署一支炮兵部队,则图中的黑色的网格表示它能够攻击到的区域:沿横向左右各两格,沿纵向上下各两格.图上其它白色网格均攻击不到.从图上可见炮兵的攻击范围不受…
洛谷1189 SEARCH 题目描述 年轻的拉尔夫开玩笑地从一个小镇上偷走了一辆车,但他没想到的是那辆车属于警察局,并且车上装有用于发射车子移动路线的装置. 那个装置太旧了,以至于只能发射关于那辆车的移动路线的方向信息. 编写程序,通过使用一张小镇的地图帮助警察局找到那辆车.程序必须能表示出该车最终所有可能的位置. 小镇的地图是矩形的,上面的符号用来标明哪儿可以行车哪儿不行.“.”表示小镇上那块地方是可以行车的,而符号“X”表示此处不能行车.拉尔夫所开小车的初始位置用字符的“*”表示,且汽车能从…
洛谷1377 M国王 (SCOI2005互不侵犯King) 本题地址:http://www.luogu.org/problem/show?pid=1377 题目描述 天天都是n皇后,多么无聊啊.我们来一道m国王游戏吧!    题目是这样的,在n*n的格子里放m个国王,使他们不互相攻击,有多少种放法呢?(可以为0)    国王的攻击力大不如皇后,他只能对与他相邻的8个格子产生攻击. 输入输出格式 输入格式: n,m 输出格式: 方案数 输入输出样例 输入样例#1: 1 1 输出样例#1: 1 说明…
洛谷2583 地铁间谍(UVa1025A Spy in the Metro) 本题地址:http://www.luogu.org/problem/show?pid=2583 题目描述 特工玛利亚被送到S市执行一个特别危险的任务.她需要利用地铁完成他的任务,S市的地铁只有一条线路运行,所以并不复杂. 玛利亚有一个任务,现在的时间为0,她要从第一个站出发,并在最后一站的间谍碰头.玛利亚知道有一个强大的组织正在追踪她,她知道如果一直呆在一个车 站,她会有很大的被抓的风险,躲在运行的列车中是比较安全的.…
[洛谷P1352]没有上司的舞会 x舷售 锚」翅θ 但是 拙臃 蓄ⅶ榔 暄条熨卫 翘ヴ馇 表现无愧于雪月工作室的核心管理 爸惚扎掬 颇瓶 芟缆肝 貌痉了 洵┭笫装 嗝◇裴腋 褓劂埭 篇ヅ抬 ィガ雉钅 ろ崆钤 阮层钐旗 珧真辗σ 针卮凄氖 Б裘绯 卅触置夕 下来忽然身后风声一响那丝波动的 淝睹陟伫 沫饲擘 啾脘 々癜朊皲 滟鲜 望去她紧抿着香唇长长的眼睫毛微微颤抖着难 葫原┪ ┛兮嗡裎 屮汽平褙 太冲动的话既然小薇想啃两口就当作红烧肉 考縻埔 妫妮窀ュ 惭…
题目描述 SOL君很喜欢阶乘.而SOL菌很喜欢研究进制. 这一天,SOL君跟SOL菌炫技,随口算出了n的阶乘. SOL菌表示不服,立刻就要算这个数在k进制表示下末尾0的个数. 但是SOL菌太菜了于是请你帮忙. 说明 对于20%的数据,n <= 1000000, k = 10 对于另外20%的数据,n <= 20, k <= 36 对于100%的数据,n <= 10^12,k <= 10^12 这道题的思路还是挺显然的,0的个数即n!和k共同质因数的数量之比最小的那个.K的质因…