暴力/枚举/模拟
文章平均质量分 77
disPlayLzy_
梦在前方,路在脚下
展开
-
Luogu P1286 两数之和___规律+枚举
我们知道从n个非负整数中任取两个相加共有n*(n-1)/2个和,现在已知这n*(n-1)/2个和值,要求n个非负整数。2原创 2022-07-04 21:49:58 · 210 阅读 · 1 评论 -
Luogu P4296 [AHOI2007]密码箱___数学
题目大意:给出nnn,求满足x2=1(modx^2=1(modx2=1(mod n)n)n)(x<n)(x<n)(x<n)的x的所有情况从小到大输出n<=2e9n<=2e9n<=2e9分析:x2=kn+1x^2=kn+1x2=kn+1移项发现是个平方差即(x+1)(x−1)=kn(x+1)(x-1)=kn(x+1)(x−1)=kn考虑拆解k,n考虑拆解k,n考虑拆解k,n①(x+1)=k1∗n1(x+1)=k1*n1(x+1)=k1∗n1②(x−1)=原创 2021-08-12 09:00:36 · 124 阅读 · 0 评论 -
洛谷 P2670 扫雷游戏
优美的暴力var a:array [0..101,0..101] of boolean; i,j,m,n,ii,jj,o:integer; g:char;begin readln(m,n); fillchar(a,sizeof(a),false); for i:=1 to m do begin for j:=1 to n do原创 2016-12-03 10:24:27 · 1312 阅读 · 0 评论 -
洛谷 P2669 金币
剩余天数(m-g)有2种 1.大于等于i:总金币直接+i*i,然后累加i天 2.小于i : 总金币剩下的天数*i,然后g=mvar m,i,g,x:longint;begin readln(m); i:=0; x:=0; g:=0; while g<>m do begin i:=i+1; if g+i<=m then begin x:=x+i*i;原创 2016-12-03 10:17:54 · 1222 阅读 · 0 评论 -
洛谷 P1781 宇宙总统
题目背景宇宙总统竞选题目描述地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竟选总统,现在票数已经统计完毕,请你算出谁能够当上总统。输入输出格式输入格式: president.in第一行为一个整数n,代表竞选总统的人数。接下来有n行,分别为第一个候选人到第n个候选人的票数。输出格式: president.out共两行,第一行是一个整数m,为当上总统的人的号数。第二行原创 2017-01-12 15:59:40 · 826 阅读 · 0 评论 -
洛谷 P1025 数的划分
题目描述世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,A 市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m*150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的选手的原创 2017-01-12 15:44:51 · 661 阅读 · 0 评论 -
洛谷 P2502 [HAOI2006]旅行
题目描述Z小镇是一个景色宜人的地方,吸引来自各地的观光客来此旅游观光。Z小镇附近共有N个景点(编号为1,2,3,…,N),这些景点被M条道路连接着,所有道路都是双向的,两个景点之间可能有多条道路。也许是为了保护该地的旅游资源,Z小镇有个奇怪的规定,就是对于一条给定的公路Ri,任何在该公路上行驶的车辆速度必须为Vi。速度变化太快使得游客们很不舒服,因此从一个景点前往另一个景点的时候,大家都希望选择行使原创 2017-02-14 21:06:40 · 496 阅读 · 0 评论 -
SSL P2209 数数
Description给出n个正整数,请你数出其中有多少对数的和小于等于s。Input第1行两个正整数n,s。 第2行n个正整数,表示给出的数。Output只有一个数,如题目要求所示。Sample Input4 6 3 5 2 1 Sample Output4 Hint数据范围 对于50%的数据,n<=1000; 对于100%的数据,n<=100000,给出的数以及s都小于等于10原创 2016-12-02 21:08:31 · 567 阅读 · 0 评论 -
洛谷 P1803 凌乱的yyy
题目描述现在各大oj上有n个比赛,每个比赛的开始、结束的时间点是知道的。yyy认为,参加越多的比赛,noip就能考的越好(假的)所以,他想知道他最多能参加几个比赛。由于yyy是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参加2个及以上的比赛。输入输出格式输入格式: 第一行是一个整数n ,接下来n行每行是2个正整数ai,bi(aivar a,b:array [0..1000000] of原创 2017-01-13 16:11:01 · 938 阅读 · 0 评论 -
洛谷 P1101 单词方阵
题目描述给一nXn的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着8个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间[color=red]可以[/color]交叉,因此有可能共用字母。输出时,将不是单词的字母用“*”代替,以突出显示单词。例如:输入: 8 输出: qyizhong原创 2017-01-25 22:56:32 · 585 阅读 · 0 评论 -
洛谷 P1208 USACO 1.3 混合牛奶 Mixing Milk
快排: 1.排序单价。 2.从小到大枚举每一个单价,如果当前欠缺牛奶数>=目前农民拥有牛奶数,ans+单价数量。否则,ans+单价 欠缺牛奶数,退出循环输出。 时间复杂度:O(m+m)var a,p:array [0..5000] of longint; n,m,i,j,ans:longint;procedure qsort(l,r:longint);var t,i,原创 2017-01-13 15:31:19 · 413 阅读 · 0 评论 -
jzoj P1540 【USACO Open 2012铜】岛屿Islands
题目大意: 在一个下雨的牧场中,找出水淹了后的牧场的岛屿最大的数量。排序+贪心: 1.把它连续的相同高度的合并成一个。 2.从小到大排序。 3.按顺序以此从最小高度淹没到最大高度,当淹没第x个时,如果相邻的2个都是比他高的,那淹了这个以后就分成了2个岛屿,ans+1,如果相邻的都被淹了,那就ans-1。var a,b,c:array [0..100001] of longint;原创 2017-03-10 21:52:12 · 603 阅读 · 0 评论 -
jzoj P2434 【普及_模拟】开关灯泡
题目大意: 一个房间里有n盏灯泡,一开始都是熄着的,有1到n个时刻,每个时刻i,我们会将i的倍数的灯泡改变状态(即原本开着的现将它熄灭,原本熄灭的现将它点亮),问最后有多少盏灯泡是亮着的。40%的数据保证,n<=maxlongint 100%的数据保证,n<=10^200题解: 规律可得: ans[n]为sqrt(n)向下取整。 问题是高精度: 看了一个个大数开方,表示一脸懵逼,后来发现原创 2017-04-08 15:55:33 · 531 阅读 · 0 评论 -
jzoj P2433 【普及_模拟】最短路上的统计
题目大意: 一个无向图上,有N个点,M条边,每条边表示a,b之间有一条边,没有自环,所有边的权值均为1。有p个询问,对于一个点(a,b),求所有a与b之间所有最短路上的点的总个数。n<=100,p<=5000题解: floyd+枚举: 1.首先二话不说floyd求出任意2点之间的最短路。 2.枚举N个点,以第i个点为断点,判断i连接a,b两点组成的最短路是否与已求的的a,b之间的最短路相同花原创 2017-04-08 16:03:56 · 461 阅读 · 0 评论 -
SSL P2640 2016东莞市特长生考试 子数整数
题目大意: 求10000~30000的数,它三部分mod k=0的数,找不到输出-1。 3部分如: 12345,即三部分为123、234、3450var i,j,k,l,m,n,p:longint;begin readln(n); p:=-1; for i:=1 to 2 do for j:=0 to 9 do原创 2017-04-10 21:20:55 · 436 阅读 · 0 评论 -
jzoj P1666 【AHOI2009】飞行棋
题目大意: 给出圆周上的N个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列,找出这些点能围成的不重复的矩形的数量。 N<=20题解: 可以发现,圆里面的任意两条直径都可以构成一个矩形,所以只需要统计这些点可以确定多少条直径就可以了,因为给出了弧长,而直径两边的弧总长是相同的,所以枚举,发现2边弧长相同就累加直径数量sum。 ans为 sum*(sum-1) div 2时间复杂度:原创 2017-04-17 20:37:59 · 572 阅读 · 0 评论 -
poj P2606 Rabbit hunt
题目大意: 给出N个点,秋有多少条共线。 1<=N<=200题解: 暴力枚举+叉积: 1.以任意2个不同的点构建一条直线。 2.用叉积 m=(x-x1)(y2-y1)-(x2-x1)*(y-y1) 枚举除这2个点以外的所有点有多少个在这条直线上,并累加ans。(ans初值为2,因为一开始构建直线时就有2个点) 3.每一次枚举完一条直线上的点数,就比较ans更新答案max找最大值。 时原创 2017-04-06 15:57:40 · 391 阅读 · 0 评论 -
特长生模拟——朋友
题目大意: mxy遇见了两种人。一种是只和自己能力值大于对方的成为朋友,另一种是当且仅当自己的能力值小于对方时成为朋友。告诉你两种人的人数N,M,以及分别的能力值a[1]..a[n],b[1]..b[m]。请你计算一共有多少对友好关系。1 <= m,n <= 20000题解: 排序+二分: 对a进行大到小排序,然后枚举b[i],每一次枚举时二分出b[i]在a中的位置,然后因为排了序的所以可以直原创 2017-05-14 20:58:45 · 370 阅读 · 0 评论 -
SSL P1125 集合(normal)
题目大意: 给定两个集合A、B,集合内的任一元素x满足1 ≤ x ≤10^9 ,并且每个集合的元素个数不大于10^5个。我们希望求出A、B之间的关系。只需确定在B 中但是不在 A 中的元素的个数即可。哈希(hash): 未完成。排序+枚举: 1.分别从小到大排序。 2.然后For一波找出他们最大的公共元素个数。 3.按题目要求输出。const maxn=100000; var原创 2017-03-03 19:33:37 · 562 阅读 · 0 评论 -
jzoj P1520 破碎的路径
题目大意: 比尔去很多地方旅游过。他在旅游的同时留下了很多简短的旅行笔记。笔记的形式是这样的: 出发地 目的地 如下面就是三条合法的note: SwimmingPool OldTree BirdsNest Garage Garage SwimmingPool 他的笔记现在乱了,请你帮他把N个笔记的顺序整理好,先写的笔记在前面。幸运的是,同一个地方比尔至多只去过一次。也就是说,在这些笔记原创 2017-05-28 09:16:03 · 654 阅读 · 0 评论 -
jzoj P1842【汕头市选2014】平均
题解: 这题的本质其实就是在其中找一个最大值,数据规模暴力即可。 时间复杂度:O(N)var max,n,i,x:longint;begin assign(input,'average.in'); reset(input); assign(output,'average.out'); rewrite(output); readln(n); max:=-m原创 2017-06-05 14:38:48 · 393 阅读 · 0 评论 -
jzoj P1843【汕头市选2014】小球
题解: 不难发现, ans=∑abs((c[i]-c[j])*(i-j)) 1<=i<=n 1<=j<=i 因为c[i]为0或1,所以abs(c[i]-c[j])只可能是0或者1,0对答案没有贡献所以我们不去考虑,这时如果当前c[i]是0时,前面对它有影响的c[j]只能是1,而c[i]=1时,对它有影响的c[j]只能是0,所以我们用2个数分别记录1~i-1的c[i]为0和为1的个原创 2017-06-05 14:50:27 · 417 阅读 · 0 评论 -
jzoj P1845【汕头市选2014】约数
题解: 我们发现,这题有一点点规律我们可以用塞素数的方法做。 按顺序,每次把没被塞掉的i的倍数全部塞出来(包括i),并且有多少个就加上多少个i,因为这时i是除了1以外他们的最小约数。最后如果全部数都被塞完了,就不用做下去了。注意若i的某个倍数,之前已经被塞出去了,就不用累加i。var a:array [0..10000001] of boolean; n,p,i,j:longint;原创 2017-06-05 14:57:32 · 447 阅读 · 0 评论 -
模拟试——knumber
题解: 因为N太小了,所以直接强行逐个枚举即可。 时间复杂度:O(n*数字平均位数)var i,j,n,k,ans:longint;begin assign(input,'knumber.in'); reset(input); assign(output,'knumber.out'); rewrite(output); readln(n,k);原创 2017-06-05 15:02:11 · 280 阅读 · 0 评论 -
特长生模拟——Array
题目大意: Alice 有一个N长的数列ai。但是她不喜欢这个数列,于是她决定随机交换其中两个数。Alice 想知道,交换后的数列与原数列相同的数有多少个。请求出所有可能的值,升序输出。1≤n≤100; 1≤ai≤1000题解: 枚举: 因为交换只有一次,所以只存在N-2和N两个答案,而且1≤N≤100,所以直接枚举任意2个交换的情况。 PS:一开始以为N=1的时候,如果不跟自己换就没有答案原创 2017-05-21 09:24:22 · 433 阅读 · 0 评论 -
模拟试——match
题目大意: 以上是每个数需要的火柴数。 火柴分为A,B,C三堆,然后用光各拼出一个数,分别是a,b,c,这三个数都不能有前导0(0本身除外),再选择一个运算符op(+,-,*,/,其中/是整数除),使得a op b = c。因为小明只学过0到999的数,所以只能拼0到999这1000个数。 求最后能拼出多少种这样的等式。对于所有的数据,2 ≤ A,B,C ≤ 21题解: 搜索,把3种火柴原创 2017-06-15 15:56:10 · 364 阅读 · 0 评论 -
jzoj 模拟赛总结(2017.07.10)
T1. 权势二进制 题目大意: 给出K组数据,每组给出一个十进制整数N,做权势二进制是十进制表示的时候只由0或1组成。例如0,1,101,110011都是权势二进制而2,12,900不是。 当给定一个n的时候,计算一下最少要多少个权势二进制相加才能得到n。1<=k<=10 1<=n<=1000000题解: 对于一个N,我们发现只需要找到他某个最大的数字X然后输出就可以了,因为可以用X-原创 2017-07-12 20:00:29 · 390 阅读 · 0 评论 -
jzoj P1285 奶酪厂
题目大意: 奶牛买了一个奶酪厂生产奶酪,已知每周生产一单位奶酪的费用为C_i,每周可以生产任意数量的奶酪,现在要为接下来N周做生产计划。厂里有一个仓库,存储量无穷大,可以用来存储暂时不用的奶酪,每单位奶酪每周花费S。告诉你每周客户的需求量Y_i,请你帮忙用最少的钱满足这些需求,求最少花费ans。注意答案可能会超出longint范围。0<=Y_i<=10,000 1<=N<=10,000 1<=原创 2017-07-15 20:58:55 · 342 阅读 · 0 评论 -
jzoj P1286 太空电梯
题目大意: 奶牛们想用K中石块制造一个太空电梯去太空旅行,每种石块有自己的高度h_i和数量c_i,为了避免宇宙射线的干扰,每种石块不能超过最高可以达到的高度a_i。求奶牛能用石块堆积的最高的太空电梯1<=K<=400 1<=c_i<=10 1<=h_i<=100 1<=a_i<=40000题解: 排序+枚举: 这题很明显先要用a[i]排序,因为这样使得a[i]变成升序,结果就能前面完全影原创 2017-07-15 21:15:58 · 534 阅读 · 0 评论 -
SSL P1128 恶魔城
题目大意: 恶魔城内有N个路口,有多个街道连接着任意2个路口,都是单向的(也就是说你不能逆着该街道指定的方向走),在城内无论怎么走都不可能走回原来走过的地方。初始时战士的HP为INITHP且在1号路口,撒旦则在第N号路口。街道上有魔鬼或者天使占领了。当战士经过连接i号向j号路口的街道时,如果占领该街道的是恶魔,那么他的HP先加倍然后减少L[i,j],我们记为A[i,j]=-L[i,j];如果占领该原创 2017-08-16 15:44:01 · 422 阅读 · 0 评论 -
SSL P2676 数学math
题目大意: 小A得到了一个数列A,他告诉你这个数列中所有的A[i]都是1到n的自然数,并且告诉你对于一些A[i]不能取哪些值。无聊的你想要知道所有可能的数列的积的和。定义一个数列的积为这个数列所有数的乘机。由于答案太大,只要模10^9+7输出即可。对于前30%的数据,n<=4,m<=10,k<=10 另有20%的数据k=0 对于70%的数据n<=1000,m<=1000,k<=1000原创 2017-08-11 07:33:09 · 498 阅读 · 0 评论 -
SSL P2574 Closest
题目大意: 考虑两个n位的十进制正整数A和B,都没有前导0。我们需要找到两个最近的靠近A的n位数(第一个比A大或与A相等,第二个严格比A小),使得它们的十进制表示是B中所有数字的某个排列。 对于给定的A和B,写一个程序closest找到这些“最靠近A”的数字,或者判断它们中的一个不存在,不存在则输出0。题解: 对于>=A且最小的数 对于一个数,我们肯定是优先它每一位是等于的情况,如果不行,原创 2017-08-12 07:23:30 · 322 阅读 · 0 评论 -
SSL P2575 给出字符串
题目大意: 给出一个由小写字母组成的字符串。你的任务是找出其最长的出现至少两次的子串的长度。这些重复出现的子串可以重叠。数据保证该字符串非空,由小写字母组成,且其长度不超过100。题解: 枚举: 这题,因为N就100,所以可以直接O(N^3)去枚举, i,找的子串多长 j,第一个出现的位置 k,第二个出现的位置 然后i倒着推找到就直接输出i就可以了 PS: 大佬们也可以用KMP。v原创 2017-08-12 07:27:01 · 438 阅读 · 0 评论 -
SSL P1963 提高组 俄罗斯方块
题目大意: “俄罗斯方块”是一个有趣的电脑小游戏,现有一个有C列、行不受限定游戏平台,每一次下落的方块是下列的7个图形的一种: 在下落的过程中,游戏者可以作90、 180或270 度旋转,还可以左右移动,对于每一次方块落地,我们要求方块的每一部分都必须与地面接触,例如, 有一个宽度为6列的平台,每一列的初始高度(已经占用的方格数)分别为2, 1, 1, 1, 0 和 1。编号为5的方块下落,原创 2017-08-13 20:04:26 · 459 阅读 · 0 评论 -
SSL P2576 平台
题目大意: 你会得到N个平板在坐标系中的坐标(如左下图)。每一块平板的坐标都是由它的高度y(与地板间的垂直距离)和它的水平方位(开始x1和结束x2)决定的。每个支柱都距它支撑的平板的边缘半个单位(如右下图)。 算出支持所有平板的支柱的总长度。 所有的数都是不大于10000的正整数且满足X2 > X1+1(也可这样理解,每一块平板的长度至少为2)。 输入保证任意两块平板间没有重叠部分。原创 2017-08-12 07:34:42 · 493 阅读 · 0 评论 -
SSL P2133 腾讯大战360
题目大意: 有N个点,腾讯与360分别在点S,点T,给出M个a,b,c,表示点a到点b有一条连边(双向边),耗时为c,他们想在最短的时间内相遇,然后干一架。,求二者“相遇”的最短时间,当然,如果无法相遇则输出“Peace!” 在此我们定义“相遇”为:两个人皆在同一个有编号的城市上就可以了,并且这两个人均可以站在原地等另外一个人。也就是说,在这里我们不考虑两人在路中间相遇。 每组数据n=5000原创 2017-08-13 20:18:13 · 578 阅读 · 0 评论 -
SSL P2691 隐藏的信息
题目大意: 在一个仅含有数字1-9(且每个数字最多出现一次)的数字N中,将N中的每一位重新排列(可以将N里的所有位全部重新排列,也可以只重新排列几位,或者不重新排列),使得排列后的新数字M是数字P~Q的公倍数,求所有的M,无解则输出No answer。1<=P<=Q<=20题解: 因为1~9最多出现一次,所以N最大是九位数,我们就直接搜索全排列的全部可能,总共有9!种可能,搜索则复杂度为9^9。原创 2017-08-14 15:54:01 · 321 阅读 · 0 评论 -
SSL P2711 正方形
题目大意: Ayumi, Mitsuhiko, Genta依次开始画正方形,一人一笔,画完一个,以上一个正方形四边中点为顶点接着画啊画啊画啊……最后一共画了k个正方形。给出第一个正方形的边长,求3人各画了多长。【数据规模与约定】 对于100%的数据满足N<=1000,K<=1000。题解: 枚举做的K个正方形的4条边,按顺序给,给第4个了就回到第一个重新给。 f[1]=n 然后第i个正方原创 2017-09-03 20:10:34 · 321 阅读 · 0 评论 -
SSL P2697 找礼物
var a:array [0..100001] of int64; ans,b:array [0..100001] of longint; c:array [0..100001] of ansistring; i,j,n,m:longint; p,q,s:ansistring; x,y:int64;procedure qsort(l,r:longint);var原创 2017-08-15 16:42:25 · 458 阅读 · 0 评论 -
SSL P2719 买礼物的艰辛
题目大意: K要买N个礼物,有M个人可以资助给他,给出N个礼物a[]价格,按顺序购买,问M个人中最高的借钱数最少是多少30%:n <=10 60%: n<=1000 100%: n<=100000 价格为不超过10000正整数题解: 这题很明显可以枚举答案! 因为借钱最多就是10000*N,则为10^9,然后最少要借max{a[i]},所以l,r有了! 然后每次二分: 因为是按顺原创 2017-09-15 20:52:58 · 445 阅读 · 0 评论