
暴力
zhouyuyang233
此乃ZJ之蒟蒻也
望大牛勿喷
我等蒟蒻感激不尽
展开
-
bzoj1800: [Ahoi2009]fly 飞行棋
传送门 首先长方形两条对角线一定是圆的直径。 然后对角线条数可以O(N)求。 答案就是C(对角线条数,2)#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cstdlib>#include<cmath>#define N 1000005using namespace std原创 2017-06-13 21:05:21 · 253 阅读 · 0 评论 -
bzoj1293: [SCOI2009]生日礼物
传送门 枚举起点找出每一种颜色在这个位置之后的第一个位置与这个位置距离的最大值,再找出每一个起点结果的最小值 转移时将当前节点坐标转移到下一个有这个颜色的位置。 可以用堆或者这个是叫做单调队列么?uses math;var a:array [0..1000006] of longint; p,h,l:array [0..65] of longint; n,m,i,j,k,ma,m原创 2017-04-17 08:27:01 · 266 阅读 · 0 评论 -
bzoj1491: [NOI2007]社交网络
传送门 话说这么简单的floyed暴力还要看题解吗?#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cstdlib>#include<cmath>#define ll long longusing namespace std;double w[105][105],s;ll原创 2017-05-02 13:50:31 · 310 阅读 · 0 评论 -
bzoj1303: [CQOI2009]中位数图
传送门 我们可以将大于b的数看成1,小于的看成-1 然后题目就变成了求有多少个在d之前的前缀与在d之后的后缀互为相反数。 显然可以O(N)预处理O(N)询问。 然后就水过去啦。var a,b:array [-100005..100005] of int64; n,q,i,bb,x:longint; ans:int64;begin read(n,bb); q:=0; fo原创 2017-04-19 20:37:29 · 312 阅读 · 0 评论 -
bzoj1269: [AHOI2006]文本编辑器editor
传送门 这题用stl来水再适宜不过了。 这个所谓的可持久化平衡树真是牛逼啊T T ext/rope 由于rope的底层实现,insert,erase,get都是logn的 就是翻转不行,不是自己手写的打不了标记啊!! 怎么办? 答:同时维护一正一反两个rope……反转即交换两个子串 区间循环位移?简单,拆成多个子串连起来就好了…… 区间a变b b变c c变d …… z变a? 呃……原创 2017-04-15 07:40:19 · 572 阅读 · 0 评论 -
bzoj1452: [JSOI2009]Count
传送门 发现颜色数超级少。 然后我们对于每一个颜色维护一个二维树状数组就水过辣。#include<cstring>#include<cmath> #include<cstdio> #include<iostream> #include<cstdlib> #include<algorithm>#define inf 2100000000#define N 105usin原创 2017-04-30 21:19:16 · 320 阅读 · 0 评论 -
bzoj1199: [HNOI2005]汤姆的游戏
传送门 题目数据范围是250000. 敢n^2暴力吗? 正解:n^2暴力。 对第一维二分,暴力判第二维就行了。 本题已收入n^2能过的好题中。#include<cstring>#include<cmath> #include<cstdio> #include<iostream> #include<cstdlib> #include<algorithm>#define原创 2017-04-06 11:45:22 · 414 阅读 · 0 评论 -
bzoj1198: [HNOI2006]军机调度
传送门 暴力枚举当前任务做或不做 暴力判断是否可行。 真·暴力#include<cstring>#include<cmath> #include<cstdio> #include<iostream> #include<cstdlib> #include<algorithm>using namespace std;struct data{int u,v,x,y,id;}原创 2017-04-06 11:41:27 · 545 阅读 · 0 评论 -
bzoj1432: [ZJOI2009]Function
传送门 一看就知道是结论题。 让我们手玩一发。 当n==1,答案是1 当n==2,答案是2(显然成立) 对于其他n,显然可以上下翻转,于是对于求f%28n/2%29”>k的,等效于求f[n-k]。 然后开始手玩。 我们从上往下增加直线,当已经放了k-1条直线,在放第k条直线的时候,如果直线k和直线k-1的交点在k-1原有交点的右边,坑定会影响前面的答案,不是最优,所以强行让交点在倒原创 2017-04-29 21:02:46 · 400 阅读 · 0 评论 -
bzoj1306: [CQOI2009]match循环赛
传送门 显然是爆搜+O(玄学)优化。 剪枝1:如果全取3或全取0仍不可行退出。 剪枝2:如果还有n个队没有比过,分数差n*3-1,退出。 然后就过了呀。#include<cstring>#include<cstdio>#include<iostream>using namespace std;const int f[]={3,1,0,0};int a[9],b[9],n,ans;原创 2017-04-22 17:28:10 · 1063 阅读 · 1 评论 -
bzoj1336: [Balkan2002]Alien最小圆覆盖&&1337: 最小圆覆盖
1337传送门 1336传送门 随机增量法求最小圆覆盖。 假如已经求出了前i-1个点的最小圆覆盖,假如第i个点后,如果不在所求的圆內,那么这个点一定在新圆的边界上。这样我们只要枚举另外两个点就可以了,因为三点确定一个圆。 枚举方法为:从1-(i-1)枚举一个不在圆內的点j,再从1-(j-1)枚举一个不在圆內的点k,那么i j k三点就可以确定一个圆。(注意三点共线的特殊情况) 这样的枚举方原创 2017-05-24 20:26:04 · 264 阅读 · 0 评论 -
bzoj1850: Submatrix
传送门 我们考虑枚举大矩形的右上角,预处理出每部最小的矩形 首先我们可以O(N^2)算出以定点为左上角的小矩形的数值和 然后单调队列求出定点在某个区间内的最小和 然后枚举大矩形。 时间复杂度O(N^2)#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#includ原创 2017-06-24 21:26:52 · 234 阅读 · 0 评论 -
bzoj1833: [ZJOI2010]count 数字计数
传送门 按照老规矩,我们要将其变为两个(1,l-1),(1,r)的询问。 然后,我们按位枚举,将肯定小于边界的统计进去。 然后这样我们九确定了接下来枚举数字的第1位数字 依次推下去九可以了。uses math;var c,d,e,f:array [0..20] of int64; a,b,p,i:int64; j,k,l:longint;procedure cf(x:int6原创 2017-06-23 21:21:40 · 292 阅读 · 0 评论 -
bzoj1821: [JSOI2010]Group 部落划分 Group
传送门 裸得kruscal。 输出最小生成树上第K-1大的边#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cstdlib>#include<cmath>#define N 1000005using namespace std;struct ppp{ int x,原创 2017-06-21 21:11:24 · 293 阅读 · 1 评论 -
bzoj1533: [POI2005]Lot-A Journey to Mars
传送门 如果总油量小于总里程显然gg 考虑维护前缀油量-里程 维护区间最小值。 如果最小值<头上的值显然gg 然后随便水水。#include<cmath>#include<cstdio> #include<cstring>#include<cstdlib>#include<iostream>#include<algorithm>#define N 1000005using n原创 2017-06-03 21:28:12 · 452 阅读 · 0 评论 -
bzoj1526: [POI2005]ban- Bankomat
传送门 我们可以对每一个方案进行暴力检验. 对每个录像求出对应的f[i][k]表示第i个字符以后第一个字符k的位置,预处理出f数组之后就可以对每个数字进行O(1)检验了. 由于无法同时求出每个串的f数组,因此可以对每个串检验10000种可能,已经不可能的数字之后就不必检验了.(用链表实现)#include<cmath>#include<cstdio> #include<cstring>原创 2017-06-02 21:39:24 · 321 阅读 · 0 评论 -
bzoj1811: [Ioi2005]mea
传送门 首先按照对称轴对折,两边的点一定重合。 然后暴力对折对称轴,区间大小就是答案。#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cstdlib>#include<cmath>#define N 1000005using namespace std;int a[500原创 2017-06-16 21:32:46 · 323 阅读 · 0 评论 -
bzoj1510: [POI2006]Kra-The Disks
传送门 首先一个下面直径比上面大的管子是然并卵的。 我们大可以把他当作上面的小管子。 然后就可以二分答案了。 但是盘子是不可以穿透的。 所以还要考虑叠在之前盘子之上的情况。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#define N 301000using namespace原创 2017-05-31 17:40:54 · 426 阅读 · 0 评论 -
bzoj1406: [AHOI2007]密码箱
传送门 首先x2=kn+1首先x^2=kn+1 然后x2−1=kn然后x^2-1=kn 得到(x−1)(x+1)=kn+1得到(x-1)(x+1)=kn+1 设x−1=k1n1,x+1=k2n2,k1k2=k,n1n2=n设x-1=k1n1,x+1=k2n2,k1k2=k,n1n2=n 爆枚n2(n2>n1),代入答案验证。#include<cstring> #include<cmat原创 2017-04-25 07:34:42 · 289 阅读 · 0 评论 -
bzoj1416&1498: [NOI2006]神奇的口袋
传送门 傻逼题。 直接计算方案数,除上总方案数就可以了。 注意要用高精度。 为啥oj上有两道题?#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define mo 10000using namespace std;int f[20005],p[20005]原创 2017-04-29 15:42:32 · 721 阅读 · 0 评论 -
bzoj1508: [NOI2003]Game
传送门 Claris代码风格实在是不忍直视。 直接爆枚是单个数字上修改还是从一个数字移到另一个数字。 只是读入输出炒鸡麻烦。#include<cmath>#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>#include<algorithm>#define N 1010#define debug原创 2017-04-14 09:40:50 · 496 阅读 · 0 评论 -
bzoj1043: [HAOI2008]下落的圆盘
传送门 看到数据范围不大,暴力走起。 枚举每一个圆,如果被完全覆盖直接退出。 否则如果被覆盖掉一部分就求出覆盖区间。 然后就是sb的区间覆盖问题了。#include<cmath> #include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>#include<algorithm>#define pi aco原创 2017-04-18 10:18:27 · 211 阅读 · 0 评论 -
bzoj1086: [SCOI2005]王室联邦
传送门 树分块(树上莫队前置技能) 贪心判断当前结点大小,大于B暴力分出一块,省会当前结点。 这样块的大小都满足大于B小于2B 到最后一定只剩下一块大小小于B的节点,暴力加入最后一个块即可.var a,b,c,ca,st,si,be:array [0..3005] of longint; n,bb,x,y,i,tot:longint;procedure ins(x,y:longin原创 2017-03-30 21:23:18 · 240 阅读 · 0 评论 -
bzoj1085: [SCOI2005]骑士精神
传送门 A*入门题。 估价函数为当前状态与目标状态上不同的位置个数。 大力dfs水过。#include<cstdio>#include<cmath>#include<ctime>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int ans[5][5]={{1,1,1,1,1},原创 2017-03-30 15:52:50 · 300 阅读 · 0 评论 -
bzoj1082: [SCOI2005]栅栏
传送门 二分答案。 显然切最小的几块最优。 暴力枚举当前是从什么地方切出来的。 但是显然要TLE 于是乎我们可以召唤王**了。 王**の剪枝: 1.当前剩余木材大小小于最小需要木材就丢弃。 2.当前丢弃木材+所有需要木材>所有的木材就返回。 然后就水过了。#include<cstring>#include<iostream>#include<cstdio>#include<a原创 2017-03-30 15:47:38 · 283 阅读 · 0 评论 -
bzoj1083: [SCOI2005]繁忙的都市
传送门 裸的最小生成树。 kruskal水过。var a,b,c:array [0..100005] of longint; f:array [0..505] of longint; n,m,i,x,y,s,max:longint;procedure kp(l,r:longint); var i,j,m,t:longint; begin i:=l; j:=r; m:原创 2017-03-30 15:50:13 · 323 阅读 · 0 评论 -
bzoj1208: [HNOI2004]宠物收养所
传送门 直接上set暴力二分不虚。#include<set>#include<cstdio>#include<cstdlib>#include<cmath>#include<cstring>#include<iostream>#include<algorithm>#define inf 0x7fffffffusing namespace std;set<int> s;int n原创 2017-04-08 15:48:49 · 365 阅读 · 0 评论 -
bzoj1202: [HNOI2005]狡猾的商人
传送门 边上带权的并查集裸题。 或者直接暴力加边求权值差。#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm> using namespace std;int f[105],v[105],fl,T,x,y,z,p,q,n,m;in原创 2017-04-07 17:48:43 · 348 阅读 · 0 评论 -
bzoj1201: [HNOI2005]数三角形
传送门 我们可以求出一个点往右,右上,左上的连续1个数。 枚举底边,O(1)判断是否可行。 理论上时间复杂度是O(n^3) 但是我程序简短常数小,然后过了#include<cstring>#include<cmath> #include<cstdio> #include<iostream> #include<cstdlib> #include<algorithm>#d原创 2017-04-07 17:41:46 · 422 阅读 · 0 评论 -
bzoj1033: [ZJOI2008]杀蚂蚁antbuster
传送门 炒鸡无敌大模拟。 就是打打太麻烦。 我不会给你讲我打错了game#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>using namespace std;int n,m,s,turd,r,T,born,getcake;原创 2017-04-07 11:46:00 · 377 阅读 · 0 评论 -
bzoj1088: [SCOI2005]扫雷Mine
传送门 只要确定第一行第一个位子是否有雷就可以知道整张图的地雷分布情况。 直接上暴力水过。 当年我too young too simple 打了动归。 f[i][j][k]表示前i个位置,i-1的状态为j(1表示有雷),i的状态为k的方案数。 也是线性时间复杂度。var a:array [0..10005] of longint; f:array [0..10005,-1..3,原创 2017-03-30 21:31:54 · 441 阅读 · 0 评论 -
bzoj1215: [HNOI2003]24点游戏
传送门 爆枚顺序。 爆枚括号。 爆枚运算符。 一点不虚。 加上哈希判重0msAC#include<cmath>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#define eps 1e-7using namespace std;int v[4],r[4],hs[8000],p=0,a原创 2017-04-10 07:55:13 · 1499 阅读 · 2 评论 -
bzoj1258: [CQOI2007]三角形tri
传送门 大力照一发规律。 以4结尾删4 以其他数结尾删到末位于当前数相同,加上4就可以了。#include<cmath>#include<cstdio>#include<cstring>#include<iostream>using namespace std;char s[105],a[4][105],ch;int l,x,fl,u,v,l1,l2;void get(int p原创 2017-04-13 15:37:20 · 331 阅读 · 0 评论 -
bzoj1295: [SCOI2009]最长距离
传送门 爆枚起点,跑一发最短路。求出距离不大于T的最远点对即可。const d:array [1..4,1..2] of longint=((1,0),(-1,0),(0,-1),(0,1));var a,e,f:array [0..51,0..51] of longint; b,c:array [0..1000005] of longint; ans,n,m,tt,i,j:long原创 2017-04-17 20:21:29 · 247 阅读 · 0 评论 -
bzoj1228: [SDOI2009]E&D
传送门 SG函数 首先给sg函数打个表……发现0的分布好有规律 然后又发现1好像也挺规则的,一堆小三角型 最后发现每个数都是类似的三角形 发现如下规律: 0出现条件 i,j均%2=1 1出现条件 i%4=1,2 j%4=1,2 2出现条件 i,j%8=1,2,3,4 …… 自己可以yy出得到sg(i,j)=k的必要条件 (i-1)%2k+1 < 2k且(j-1)%2k+原创 2017-04-13 08:28:36 · 750 阅读 · 0 评论 -
bzoj1192: [HNOI2006]鬼谷子的钱袋
传送门 有经验的人应该都能看出来答案是logn向上取整。var n:longint;begin read(n); write(trunc(ln(n)/ln(2))+1);end.原创 2017-04-04 11:41:08 · 677 阅读 · 0 评论 -
bzoj1225: [HNOI2001] 求正整数
传送门 设M=a1p1∗a2p2∗......∗anpnM=a1^{p1}*a2^{p2}*......*an^{pn},则因数个数是Πi=1(pi+1)\Pi_{i=1}(pi+1) 然后dp f[i][j]表示前i个质数,组成了j个因数的最小数字。 +上高精度发现愉快的T了 然后我们可以将数用log的值表示。 到最后再加就可以pass了。#include<cstring>#incl原创 2017-04-12 15:50:36 · 402 阅读 · 0 评论 -
bzoj1149: [CTSC2007]风玲Mobiles
传送门 脑残模拟题。 如果叶节点深度之差>1无解。 暴力判断两种深度的节点是否存在。 如果左右子树都有不合法。 暴力判断是否要交换即可。#include<cstdio>#include<cmath>#include<ctime>#include<cstring>#include<iostream>#include<algorithm>using namespace std;i原创 2017-04-02 15:50:01 · 711 阅读 · 0 评论 -
bzoj1224: [HNOI2002]彩票
传送门 爆搜大概是100E 然后加一下上下界剪枝。 如果无论之后怎么取都不可行就剪掉。 暴力不虚。#include<cstring>#include<cmath> #include<cstdio> #include<iostream> #include<cstdlib> #include<algorithm>#define eps 1e-10using namesp原创 2017-04-11 15:59:13 · 587 阅读 · 0 评论 -
bzoj1218: [HNOI2003]激光炸弹
传送门 真.暴力。 直接爆枚正方形左上角+前缀和优化。 N^2不虚。uses math;var f:array [-5..5005,-5..5005] of longint; r,n,i,j,ans,x,y,z:longint;begin read(n,r); for i:=1 to n do begin read(x,y,z); inc(f[x,y],z); end;原创 2017-04-10 09:24:14 · 343 阅读 · 0 评论