水题。
文章平均质量分 68
natsuyu
这个作者很懒,什么都没留下…
展开
-
HDU 3999 BST基础
初学BST树,拿来练练手。题目是你一个序列,叫你求出建同样的树所用的最少字典序的序列。。。。嗯。。应该就是前序了。。。然后。。恩恩。。。。#include #define maxn 100100struct node{ int val; node *left,*right;}tree[maxn];void insert(node *rt,node *x)原创 2015-04-08 15:30:47 · 506 阅读 · 0 评论 -
HDU 1258 【水dfs】
。。。。。。。本来想做1285的。。。然后看岔了。。好囧。。看了题目觉得还有点意思可以敲。。于是想了想蛮敲敲好了。。恩。。就是这样。。数据范围不大,最多就12个数,可以暴力,也就4096次?就2^12,然后感觉用了STL开挂蛮多的。。。不过现在越来越觉得STL好用了,打算以后有空了自己去实现一遍。。#include #include #include #include #inc原创 2015-06-04 19:08:15 · 421 阅读 · 0 评论 -
leetcode 105【前序,中序建树】
有简洁版的。。可是懒得看。。。。自己写的这个算是模拟手酸过程了吧,恩。感觉碰到这样的例子,就是涉及长度加减的,都要拿小数据测一测。class Solution {public: TreeNode* find(int l,int r,int ll,int rr,vector&preorder,vector&inorder) { if(lr||ll>rr) r原创 2015-06-06 20:49:35 · 583 阅读 · 0 评论 -
leetcode 211 【Trie】
简单trie树应用,在查询的时候如果碰到 '.'的情况,就搜索所有相连的字母,继续查找,只要基于这些相连的字母的查找有一个是有效的,那么就返回true.class WordDictionary {public: class node { public: int have; node *next[26]; node(){h原创 2015-06-06 19:15:32 · 447 阅读 · 0 评论 -
leetcode 106 【中序,后序建树】
和leetcode 105差不多的。class Solution {public: TreeNode* find(int l,int r,int ll,int rr,vector& inorder, vector& postorder) { if(lr||ll>rr) return NULL; TreeNode *root=new TreeNo原创 2015-06-06 21:21:14 · 316 阅读 · 0 评论 -
HDU 4557 【水+list使用】
是谁……是谁说这是AVL的题……!!!看到题之后直接开始敲AVL得模板了,然后。。由于不会删除还还倒腾了好久不对!QAQ好吧……都是我的错……谁叫我一不多想想,二不算算复杂度……改了水法之后还WA了一发,马上检查,发现是少了个等于……#include #include #include using namespace std;#define maxn 1100int to原创 2015-06-10 20:57:37 · 391 阅读 · 0 评论 -
HDU 5266 【tarjan--水】
给你一棵树,然后给m次询问,每次问两个节点的最近公共祖先是多少。。。显然不能依次查找的嘛。。一定要离线。。然后公共祖先就用tarjan啦。。。就是这样。。也是个模板题。好像没有什么坑点。。。1A的。。。duang#pragma comment(linker, "/STACK:102400000,102400000")#include #include #include #inc原创 2015-06-15 11:29:40 · 442 阅读 · 0 评论 -
HDU 5366 【组合数+隔板法】
这道题有DP做法和数学做法。。。数学做法:用隔板法,枚举放入木桩的个数i,然后从n个格子中去掉i个木桩i,由于木桩之间间隔为2,所以再抽取(i-1)个格子,这样用隔板法的时候就没有问题了然后注意组合数。。。用公式C(n,m)=C(n-1,m-1)+C(n-1,m)才可以,若是直接算阶乘会爆的!!(这么简单的都忘了!!)DP做法:用s[i]表示有i个格子的时候摆放的方法数,那么增原创 2015-08-09 19:06:24 · 523 阅读 · 0 评论 -
POJ 2559 dp 【复习】
题目不看全就风风火火开始做的我也是醉了。。。。因为没看到n为0的时候结束,,改了好久都不知道错哪里。。。一些题目明明自己做过了却忘了说明没有理解透,慢慢来复习。#include #include using namespace std;#define maxn 101000#define ll long longstruct node{ ll val,pos;}que原创 2015-08-09 15:08:09 · 363 阅读 · 0 评论 -
HDU 2089 【数位DP+复习】
囧。。。这道题又捣鼓了很久。。。以前也做过。。说明没有理解透嘛。。真的非常shy。。dp[i][j]表示第i 位上的数是j的时候符合情况的情况数(没有4没有62),计算这个值,就是枚举前一位的数(0-9)符合情况的数相加即得。而且枚举的时候要从高位到低位枚举,因为每次枚举的数的范围是(0-dig[i]-1)所以当枚举下一位的时候(dig[i-1]),当前位就是dig[i]了。并且由于要原创 2015-08-10 08:25:15 · 349 阅读 · 0 评论 -
HDU 1285 【简单拓扑】
这道题做的自己心烦意乱!本来想找一种快一些的方法。。结果把自己搞的晕头转向。。。自己一直坑的一个地方。用邻接表的话其实不用考虑重边,因为你在删点的时候一定会删掉重边,并不用担心。我是每次找到一个入度为0的点的时候进行更新后却没有break,还是继续循环,这样结果就会出错,可能在这个循环中有两个入度为0的点,但是我可能更新后也出现了入度为0得点,然后答案的顺序就错了。。。#include原创 2015-06-04 21:18:45 · 481 阅读 · 1 评论 -
POJ 3903 【最长递增子序列 NLOGN】
由于数据大,常规做法会T。然后NLOGN的方法小小get了一下。我觉得这种做法如果只是想知道怎么做的话,看代码比看字来的容易懂,但是当然想要知道原理的话还是要去看字呀。然后自己偷懒并没有去把原理看懂。#include #include using namespace std;#define maxn 100010int que[maxn];int top;void upda原创 2015-06-01 21:58:26 · 481 阅读 · 0 评论 -
HDU 5229 【水题】
没得讲。。为什么这么简单自己想不到。。。题解讲得挺明白的了,没什么坑点。#include #include #include using namespace std;mapque;int a[2];int gcd(int a,int b){ return b?gcd(b,a%b):a;}void init(){ que.clear(); a[0]原创 2015-05-18 17:18:20 · 343 阅读 · 0 评论 -
HDU 5200
恩。。。。看了题解之后不知道线段树应该怎么实现,由于后面附了更简便的方法,所以好像没有看到用线段树实现的题解QAQ。。想知道。。。然后仔细看了最后的题解,发现………………自己刚开始写的就差一点点就可以优化了嘛QAQ!摔!每次对比的时候只看前后的位置是否有树,所以只要比对这两个就好了啊。。。然后就不用再用队列来存放那些加进来的树了。。。虽然自己在写之前算过复杂度。。但是。。。貌似忘了考虑每次后移原创 2015-04-09 19:11:01 · 486 阅读 · 0 评论 -
ZOJ 3846 【水】
真的是。。。智商捉急就是这个样子。。。刚开始的想法是把数列排序,排完之后把第一个数和后面的数比较,如果有互质的,就处理这两个,然后再用第一个和其他的进行处理,总共是n-1次操作。如果都没有和他互质的,那就-1.原先这样想是觉得,因为第一个最小,所以后面的如果和他不是互质的,都可以写成a[1]*x的形式,所以如果都不互质的话,其他的数也不会互质。。。。但是。。。谁说两个数GCD一定是小的那个数了原创 2015-04-26 18:16:29 · 540 阅读 · 0 评论 -
Codeforces 292 div2 D
第一次做CF,,,虽然是补番的,感觉CF做的比国内的OJ成熟,怎么说。。更好用,,除了比赛时间都是大晚上这样的>ABC就不说了,都是水题,,,不过每次做水题都会感叹自己太急躁,不够细心。。。。。D题看到第一眼就想用匈牙利做二分匹配。怪自己大意,不把2000*2000当回事,到后面判重的时候真的非常艰难。。。所以测试数据只能过一半,剩下的就T掉了。看了别人的代码(这一点很喜欢,貌似所有的原创 2015-04-17 14:17:51 · 422 阅读 · 0 评论 -
POJ 1925 【水】
这道题自己是水过的,,,交完之后看了网上的代码是DP,,我。。。时间还算不错,跑了400MS。题意:蜘蛛侠从初始的塔开始,利用一栋栋楼做圆周摆,到达最后的塔楼。并且每次摆长不能大于楼高。题解:首先,每次的圆周摆要完成之后才可以进行下一次的移动,所以每次的圆周摆,始末位置是关于塔楼对称的。根据楼高可以算出能进行圆周摆的范围,然后就枚举。。我在讲什么啊去QAQ。。。#include原创 2015-04-25 10:32:39 · 497 阅读 · 0 评论 -
BC-40 HDU5225 HDU 5226 【水】
第一题,给你一个矩形的面积,求矩形的最小周长。可知,当两边长最接近的时候,周长最小。所以可以从sqrt(s)开始枚举,如果能够整除,就输出计算的周长#include #include #define ll __int64int main(){ int T; scanf("%d",&T); while(T--) { ll n;原创 2015-05-10 12:52:42 · 724 阅读 · 0 评论 -
HDU 2586 【LCA-Tarjan-模板】
模板题。利用DFS的时候,由于是类似于树的后序遍历,所以处理到每个根节点的时候,他的子树已经处理完毕了。如果子树上有一个节点是被询问的节点,如果对应的另一个被询问节点也在这颗子树上,那么一定能找到,并且一定是正解。最近的根节点就是最先遍历到的那个节点的祖先节点(已经通过并查集压缩)。然而这道题也搞了好久,原因是我自己懒。。然后对于并查集和Tarjan还不是很熟。。恩,然后这道题需要扩栈原创 2015-05-15 16:01:48 · 425 阅读 · 0 评论 -
POJ 1330 最近公共祖先LCA_Tarjan 【水】
最近打算狂撸一下图论和数据结构的题。当是复习数据结构!但是每天都感觉好困。。。。QAQ。。。。这就是到裸的CLA。。。。并且只查询一次,所以难度降低了很多。如果是二叉树还有其他方法。Tarjan的思想觉得自己没有太明白,理解的时候不是很。。。恩。#include #include #include using namespace std;#define maxn 1原创 2015-05-14 21:32:04 · 513 阅读 · 0 评论 -
HDU 5246 【百度之星初赛 水】
。。。。。。。。WA了好半天忽然发现。。。。。。。。连题意都理解错了。。。。。。!!!摔!原来每次战胜一个人,能力值就减一。因为如果能力值比敌人大,能力值就不会增长了,所以每次的能力值一定要卡在值上。#include #include #include #include using namespace std;#define maxn 10010#define ll原创 2015-06-17 14:03:43 · 395 阅读 · 0 评论 -
HDU 5228 【水题】
觉得自己真是猪脑壳。。。数据很小,所以可以考虑暴力。枚举出现同花顺的每种情况,然后与输入的数据进行比较,找两者的交集。恩。然后之前想得好复杂。。用什么DP,,什么奇技淫巧。。我是傻逼。#include #include #include using namespace std;string a[10],s[10];string cal(int x){ strin原创 2015-05-18 14:53:53 · 429 阅读 · 0 评论 -
HDU 2294【DP+快速幂】
睡眠是个好东西。。=w=。。今天上午困困的。。明明已经发现怎么做了,结果建立矩阵的时候脑子一直是糊里糊涂的。。。。睡了一觉,起来改改就过了。。。=w=~~之前知道是DP+快速幂了,但是之前看的时候没有头绪。看第一眼也觉得是组合数,但是自己先草算几个例子就会发现是DP,用dp[i][j]表示目前的长度为i,用了j种颜色,那么可以由i-1的长度有j-1中颜色在剩下的k-j+1中颜色中挑一种原创 2015-09-09 14:46:43 · 431 阅读 · 0 评论 -
POJ 3468 【线段树复习】
0 0 在刷DP的我不知道为什么点开了一个线段树呢。。。真神奇。。然而一定是输错了题号。。但是蛮做吧,还是有点忘了的。。比如说在add的时候忘了给路过的区间更新QAQ#include #include #include #include using namespace std;#define maxn 100100#define llt long long llt ans;原创 2015-09-10 09:23:40 · 312 阅读 · 0 评论 -
HDU1530 【最大团 水】
0 0.。。。。。。最大团的定义说实话。。。每过一阵子就忘了。。。首先---团,每个顶点,每条边都是属于给定的图的。并且里面每个顶点都相连 ----最大团,就是顶点数最多的团#include #include #include #include using namespace std;#define maxn 55int a[maxn][maxn],vis[原创 2015-12-29 23:39:26 · 386 阅读 · 0 评论 -
【水DP 回文子序列】POJ 3280
周日做腾讯笔试。。最后一题是最长回文子序列。。。(●°u°●) 」由于太久没做这样的题了。。第一题蛇形数组坑了我好久。。然而原因居然是控制前进方向的数组写错了。。TAT然后最后一题就剩下十几分钟。。于是我一看到“回文”,“序列”。。就开始写回文子串。。写完剩2分钟再看一眼题目就发现悲剧了。。(((o(*゚▽゚*)o)))。。。。以前自己刷题也犯这种错误。。但是并不在意。。。到笔试的时候就坑爽原创 2016-04-05 14:15:54 · 326 阅读 · 0 评论 -
【leetcode】65.Valid Number
不好意思开挂了:(javascript)var isNumber = function(s) { var ret = Number(s)+""; if(ret=="NaN") return false; if(ret=="0") { var reg=/0/g; var tt = reg.exec(s); if(!t原创 2016-03-26 21:00:17 · 283 阅读 · 0 评论 -
【水题】HDU 5646
想要乘积大,那么挑的数肯定要越相近越好。想过分治,但是不能保证挑的数不重复。并且要满足sum(1,m) >= n。所以基于1,2,3,..m的数列。。于是对于1-m每个数都加上(n-sum(m))/m,再从后往前把多余的数值补上去。。其实这是打表发现的。。= =#include #include #include using namespace std;#define ll l原创 2016-03-26 16:23:31 · 270 阅读 · 0 评论 -
【CCF 画图】
我真的还能再水五百年…就按照题目做就行了,其实要是数据量大一点的,就应该要用离线算法做了第一法90分,看了下代码,在判断是否设置「+」的时候,没有判断当前位置是否已经是交叉的了,如果是的话就不用改#include #include using namespace std;#define maxn 110char s[maxn][maxn];int n,m;int cmp[4原创 2016-12-10 16:13:31 · 425 阅读 · 0 评论 -
【CCF 数列分段 水】
就是数数,然后可以优化下,不用放数组……你懂的#include #include using namespace std;int main(){ int n; while(cin>>n) { int ans=1,pre=-1,x; for(int i=0;i<n;i++) { cin>>x;原创 2016-12-10 16:36:01 · 486 阅读 · 0 评论 -
【CCF 路径解析】
= =简直… 上来一发80分,然后一直想哪里错了,然后发现是考虑了名字中带.的路径,没考虑路径为..xxxx的情况…补上之后90分……= =!!然后想可能是之前用string,不支持空行的缘故,所以又改成了char,然后就可以了注意当前路径也有可能是需要解析的,两端代码几乎一样……迷之微笑,不想优化#include #include #include using namespac原创 2016-12-05 16:25:46 · 650 阅读 · 0 评论 -
【CCF 折点技术 水】
4,5题做不出来,感觉自己已经是个废柴了…感觉以后更没勇气走上刷codeforce的道路了嘤嘤#include #include using namespace std;#define maxn 1010int a[maxn];int main(){ int n; cin>>n; for(int i=0;i>a[i]; int ans=0;原创 2016-12-05 16:31:29 · 298 阅读 · 0 评论 -
【CCF 俄罗斯方块】
感觉是时候做一发小游戏了…这道题居然wa了两发…感觉好sad……思路的话,就找到下落方块的边界值,然后遍历一下地图就好…#include #include using namespace std;int s[16][11],a[5][5];int main(){ for(int i=0;i>s[i][j]; int l=0,t=3; for(int i=0原创 2016-12-05 20:46:41 · 617 阅读 · 0 评论 -
HDU 5501 【贪心+背包】
首先想到的是背包,但是只是纯背包的话,会发现,每个物品取的顺序是会影响结果的(就对案例而言,我如果先取了第一个,再取第二个,就会与最优结果失之交臂)。所以就要考虑,什么顺序取舍最好。然后这个问题就按白书上那样套套公式啦。。发现是Xc/Xb 越小,优先级越高。所以先读入,排序,在背包#include #include #include #include using namespace s原创 2015-10-11 12:39:48 · 412 阅读 · 0 评论 -
HDU 5500【水】
没想清楚。。上来就敲了一个逆序数。。。。可以发现。。从n开始算,n-1,n-2的那些书都不用动。。#include #include #include using namespace std;#define maxn 20int a[maxn];int main(){ int T; cin>>T; while(T--) { in原创 2015-10-11 10:34:45 · 372 阅读 · 0 评论 -
HDU 5499 【水】
刚开始没看清题目。。做的有点麻烦了。。#include #include #include #include #include using namespace std;#define maxn 110class node{public: string sex,name; double sum; int r1,r2; void set(strin原创 2015-10-11 01:29:20 · 395 阅读 · 0 评论 -
HDU 5428 【水+因子。。?】
求n个数之积的最小非质因子。之前还在纠结是不是要对每个数都把因子打出来,但是发现只要把这些数所有的因子中最小的两个因子相乘就是了。注意求因子有技巧,请加特效。。(太久没做果然忘光光)#include #include #include #include using namespace std;#define maxn 1100#define ll long longll原创 2015-09-10 20:02:19 · 309 阅读 · 0 评论 -
HDU 5427 【水】
DP撸不下去了所以我百无聊赖又不想放弃治疗所以过来做水题了果然是这两天太浮躁了这样的水题都会出错今天让我撸一下午的水题吧啊啊啊啊啊啊!!!!注意题目说的名字可能有空格所以要用gets#include #include #include #include #include using namespace std;#define maxn 110struct node{原创 2015-09-10 15:12:58 · 358 阅读 · 0 评论 -
HDU 1242 【搜索+记忆化。。?】
其实碰到迷宫中的最短距离问题,应该用BFS做的。。。之前忘记了,用DFS做,T了好几发,虽然之前想到过记忆化,但是用DFS的话,貌似记忆化没什么卵用。。现在半梦半醒的时候都在自动debug。。。#include #include #include #include #include #include using namespace std;#define maxn 220#原创 2015-09-12 11:37:08 · 313 阅读 · 0 评论 -
HDU 5429 【大数除法模拟】
生死一瞬间。。。QAQ在debug之后我想到如果都是0怎么办,然后去百度了一下,说全是0的数列不是等比数列。。。,于是我看了好久也看不出来哪里还有错,试了好多数据。。看了题解,题解是用大数模板,由于如果使用除法,会有小数产生,所以用了a[i]*a[i]=a[i+1]*a[i-1]来做。我是认为如果比值是小数的话那么一定不是等比数列,因为所有的数都是整数。居然自己写了一个大数除法,倍感骄原创 2015-09-11 15:24:33 · 486 阅读 · 0 评论