- 博客(121)
- 资源 (1)
- 收藏
- 关注
原创 博客搬家了
新家elicococoo.me 虽说反正也没人看,不过还是说一下。 自己在github上搭建了博客,这个博客就不再更新了。 会搬一些文章到新家。 嘛,就这样吧,喵~
2016-09-12 23:56:14 540
原创 支持向量机入门
支持向量机(SVM,Support Vector Machine):将数据集映射到多维空间中,然后寻找一个超平面将数据分开。——只要原始空间是有限维,就一定存在一个高维特征空间使样本可分。 那么问题来了,怎么找这个超平面呢? 如图,显然超平面最理想的就是绿色的那条(二维空间超平面就是条线,n维空间超平面是n-1维),因为它的泛化能力最强,健壮性最好;或者说,在如图两种分类中,要寻找距离这条线
2016-08-28 19:13:42 2035
原创 如何判断单链表有环,并找出环的入口
如何判断单链表有环,并找出环的入口? 时间O(n)O(n),空间O(1)O(1)。 这个面试题还是蛮有趣的,当时只想出了第一问,第二问实在巧妙。 如图这个单链表,蓝色的部分是环。 对于如何判断链表有环,可以从起点发出两个指针,一个一次一步,另一个一次两步,如果两个指针相遇,那么这个单链表就有环。 设绿色的地方是指针相遇点。 对于第二问求环的入口,从第一问的相遇点和起点各发出一个速
2016-04-17 14:24:14 6882 3
原创 【更新】hdoj 1242 A*
首先这题就是个水题,主要试验一下A*算法。 A*的思路: f(g) = d(g) + h(g) f(g)是预估长度,d(g)是走到当前点所用的距离,h(g)是从当前点走到目标点的预估距离,在二维方格地图中一般取曼哈顿距离作为预估。 算法核心流程: 1.每走一格更新当前点周围各点的f(g),并存入数组中; 2.每次取f(g)最小的点,并重复上步 这样路径搜索就有一定的趋向性,可以减小搜索
2016-03-25 10:35:43 638
原创 那些年喝过的饮料
兴趣使然地写这篇日志,记录那些年喝过的饮料,不定期更新,兴趣使然地更新。 1.忌廉风味汽水 一口跪。。。奶油冰激淋味,微苦 喝多几口感觉还可以接受。。习惯后感觉居然还不错 其实有一行小字写着:奶油味汽水 2.碧泉蜜桃茶/柠檬茶 红茶+蜜桃/柠檬,红茶味比较重,蜜桃有味,柠檬没味。 比康师傅红茶好一点。 3.屈臣氏香草味苏打水饮料 和那个忌廉汽水一个味。 味道好像稍微淡
2015-12-03 23:18:09 1974
原创 退役
退役了。 这个博客可能还会继续更新题解,或者写一些别的东西。 反正我是混日子的蒟蒻,也不会有人看。 在大三选择退役也是出于无奈,大四没人,同年级没人,大二的太废扶不起。 曾经也有梦想,也努力过,也拼搏过,但是铁牌选手再努力多半也是铜牌,我只是普通的多半人。 只能走到这里了,不想走,不得不走。 acm不是全部,生活还要继续。 还是去看剧治愈一下吧。
2015-11-21 18:29:42 555
原创 Codeforces Round #326 (Div. 1) B Duff in Beach
B.Duff in Beach 题意:有一个长为l的序列B是由一个长度为n的序列A循环得到的,即bi=ai mod nb_i = a_{i \ mod \ n},现在定义一个新的序列C,C的生成条件有三个: 1.C中每个元素都在B中,并且C中的每个元素都在不同的循环节里(即C中两个相邻的元素在B中的距离不会超过2n,不会低于n); 2.C的长度超过k; 3.C不递减。 问C有多少种,答案模
2015-11-08 18:19:53 504
原创 hihoCoder 1236 bitset + 分块
hihoCoder 1236 题意:给一份成绩单,成绩单上有5门成绩,成绩范围在1~m,然后询问q次,每次给一个人的成绩问每科成绩的分数都低于他的人有多少。 思路:bitset里标记一下成绩在某个数值以下有哪些人,最后5个bitset的交集就是答案。 但是空间需要O(nm)O(nm)并不够用,所以要对人数进行排序分块。 另外这个题强制在线,每次询问的成绩需要和上次询问的答案做异或。#incl
2015-11-07 16:29:22 560
原创 hdu 5534 dp
hdu 5534 题意:一棵树上有n个节点,树有一个”酷值“,一棵树有多酷取决于点的度数,一个度数为ai的点可以给树增加f(ai)的酷值,求一棵点数为n的树的最大酷值。 思路:深刻感受到自己智商低。。首先每个点给1度可以确保连通,然后对剩下的n-2度自由分配,dp一下就出答案了。。注意这时每次分配的度数i的酷值增量是f(i + 1) - f(1)。#include <cstdio>#inclu
2015-11-07 11:11:28 461
原创 hdu 3501 欧拉函数
hdu 3501 题意:求小于n的所有不与n互素的数的和。 思路:本来想着这个题可以和hdu 5514一样用容斥搞,但是tle了。。 对于一个小于n的正整数i,如果i与n互素,那么n-i也是与n互素;如果i不与n互素,那么n-i也一定不与n互素。这个很容易证明。 所以我们很容易可以发现对于n(n>2)来说,与它互素的数都是成对存在的,并且存在ϕ(n)/2\phi(n)/2对组合和是n,这样就
2015-11-04 16:23:45 485
原创 hdu 5514 容斥
hdu 5514 题意:有n个青蛙编号1~n,m块石头编号0~m-1,石头围成一圈,每只青蛙会从第ii块跳到第(i + ai) mod m(i \ + \ a_i) \ mod \ m块,青蛙会跳无数次,问被青蛙踩过的石头编号的和是多少。 思路:对所有ai求gcd(ai, m)得bi,对于每个bi,编号为bi的倍数的石头一定也被踩过,但是会被重复踩。 求m的所有因子f,这些bi必定在f中,f中
2015-11-04 16:12:31 910
原创 hdu 5536 trie树
hdu 5536 题意:给n个数字,求max{(Si+Sj) ⊗ Sk}(i≠j≠k)max\{(S_i + S_j) \ \otimes \ S_k\}(i \neq j \neq k) 思路:建trie树,遍历所有的Si+Sj,每次查询时删除Si和Sj,查完再加回去,这样可以降低查询的回溯时间。另外数组开大了初始化会慢上几秒。。/*******************************
2015-11-01 20:57:38 719
原创 Codeforces Round #327 (Div. 2)
A. Wizards’ Duel 题意:一维坐标系,两个点以不同速度相向而行,其中一个点在原点,求相遇时相对于原点的距离。 思路:签到题。/**************************************************** >Created Date: 2015-10-25-16.56.50 >My Soul, Your Beats!***************
2015-10-31 10:39:15 352
原创 hdu 4565 So Easy! 共轭构造+斐波那契矩阵加速
hdu 4565参考题解:hdu 4565 So Easy! (共轭构造+矩阵快速幂)题意:求值。思路:根据可构造共轭方程,因为共轭,所以一定是整数,而且由知,所以可以忽略不计。进行一些变换:这样问题就转化成了快速求斐波那契数列第n项的问题。/**************************************************** >Create
2015-10-02 18:01:27 607
原创 2015 亚洲区域赛长春赛区网络赛解题报告(9/13)
这场比赛由东北师范大学出题,题目共13道,冠军过了12道,出线需要6道,整体上难度不是很大。1001 Alisha’s Party题意:Alisha有n个朋友来参加她的party,每个朋友来的时候会带一个价值为vi的礼物,Alisha会为她们开m次门,但是每次开门会只能进ai个人,而且是礼物价值高的人先进,如果礼物价值一样,那么先来的先进。之后有q次询问,问第bi个进来的人是谁。思路:
2015-09-14 23:02:13 1349
原创 Codeforces Round #316 Tree Requests
题目链接题意:给一棵树,树上每个节点都有一个字母,问在某个节点的子树中,到根的深度为d的所有节点上的字母任意排列,能否形成一个回文串。思路:将树改成线性,按访问顺序给新的标号,并记录一棵子树的起始点,以及最大的子孙节点,同时将每个节点按照其深度放进一个数组中,这样每个深度数组都是有序的,并且同一棵子树上节点一定是连续的,然后就可以用二分寻找某一子树的某个深度节点的所在范围,并通过记录前缀和
2015-09-12 16:41:42 439
原创 Codeforces Round #319 (Div. 2) B C D
这场题目挺水的。。感觉半小时能出3题。。可惜没有注册。。B. Modulo Sum题意:给100w个数,问是否存在子序列使得整个子序列的和能够整除m。思路:将所有数对m取模,然后问题就转化成了一个多重背包问题,数比较多需要优化一下。不知道为什么过的人这么少。。#include #include int nums[100000], mod[3010], cnt;bool d
2015-09-11 13:34:57 995
原创 UVa Live 7147 贪心(2014 上海区域赛)
题目链接这个题已经过了一年了。。。本来当时就想写题解但是没找到题。。最近有人问我才知道原来UVa Live有历年题目。。。去年在现场的时候这题也是卡了好久。。。重写了两三次。。封榜了才过。。题意:有n只队伍,每只队伍要和其他n-1只队伍比赛,每场比赛获胜得a分,平局得b分,败北得c分,共有m只队伍可以晋级,问最高淘汰分和最低晋级分分别是多少。思路:这个题的细节真的很多。。首先如
2015-09-10 13:06:44 1062
原创 高精度模版
又是扒的kuangbin巨巨的~#pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #include #include #include #include #include using
2015-09-09 23:01:17 562
原创 woj 1124 最大流
woj 1124题意:有编号1~n共n只球队进行比赛,你的球队是第n号,每场比赛获胜的球队可获2分,输掉获0分,平局获1分,现在给出接下来的若干场对阵安排,问你的球队是否有机会联赛夺冠,即分数比其他队伍的分数都高。思路:先让接下来的对阵中自己队伍相关的比赛全部获胜,如果这样依然有别的队伍分数高于自己,那么肯定无法夺冠,否则就开跑最大流。这里的最大流建图就很简单了,源点到没有n号队伍参与
2015-09-09 16:18:37 819
原创 zoj 2760 求不重边最短路 最短路+最大流
zoj 2760题意:给一个有向带权图,问s到t有多少条不重边的最短路。思路:将所有在最短路上的边都加入网络中,边的容量为1,跑出的最大流量就是答案了。换句话说,先跑出s和t分别到各点的最短距离,对于所有的边,如果ds[u] + edge[u][v] + dt[v] == ds[t],那么就把边(u,v)加入网络中。需要注意的是,如果用dijkstra跑t的单源最短路的话,边的方向
2015-09-09 15:14:27 548
原创 poj 2699 最大流+枚举
poj 2699题意:这题废话真多。。就是说有n个选手,每个选手有一个比赛分数,比赛分数是他打败的选手的数量,每两名选手之间有一个比赛胜负关系,具体关系未知,现在定义一个Strong King的东西:如果没有比这名选手分数更高的选手或者这名选手打败了所有分数比他高的选手,那么这名选手就是Strong King。问最多有多少名Strong King。思路:好像有人用贪心水过了,这题的正确解法
2015-09-09 11:31:15 454
原创 poj 2391 二分+多源最短路+最大流
poj 2391题意:有n个挡雨棚,每个挡雨棚可以容纳Bi头牛,现在每个挡雨棚下有Ai头牛,有m条路,每条路连接两个挡雨棚Ui和Vi,每头牛经过这条路需要花费Ti的时间,忽略牛的碰撞体积~思路:这种求时间和流量没什么关系的题,可以通过二分枚举时间往图里增边,判断是否满流来求时间,这就需要用floyd求多源最短路。建图:显然挡雨棚的容量是流量来源,牛的数量是最大流量,所以每个挡雨棚都
2015-09-08 23:25:39 457
原创 poj 1637 最大流解混合图欧拉回路
poj 1637题意:给一个混合图,判断是否是欧拉回路。思路:首先是基本的欧拉回路判定:1.所有点连通(题目保证所有点连通)2.每个点的度数之和为偶数:可以给路径任意定向统计出度入度3.每个点的入度出度相同:因为有的路径方向可变,所以难以统计,也是这题的难点所在设di为点i的入度-出度,如果di不为0,就说明有di/2条和i点相连的路的方向需要被修改(di大于0,入度路
2015-09-08 16:32:14 498
原创 poj 1149 最大流经典建图
poj 1149题意:有m个猪圈,n个人去买猪,每个人有ai个猪圈的钥匙最多买bi只猪,每个人买猪时会把猪圈门打开,这时候可以将这几个猪圈里买剩下的猪自由分配到这几个猪圈里,问最多能卖掉多少头猪。思路:实在是经典的建图方法,这篇博客写的很清晰了,膜拜大牛orzzzzzzzzzzzzzzzzzzz#include #include #include #include #inclu
2015-09-08 13:23:19 464
原创 poj 3281 最大流
poj 3281题意:每只奶牛喜欢吃若干种食物和饮料,问只吃一种食物和饮料的奶牛最多有多少只。思路:将奶牛做点拆开,形成源点-食物-奶牛(左)-奶牛(右)-饮料-汇点的链,每条边的容量都是1,奶牛(左)-奶牛(右)限制了一只奶牛同时最多吃一种食物喝一种饮料。然后跑最大流就可以了。#include #include #include #include #include #i
2015-09-07 14:31:32 358
原创 sap和dinic模板
扒的kuangbin巨巨的模板~两个时间复杂度都是O(V^2E),当然实际运行效率会好得多对我这种蒟蒻来说这种意识流的题还是需要多备几手的~hdoj 3549 最大流裸题sap:156ms#include #include #include #include #include #include #include #include #include #incl
2015-09-07 12:33:42 977
原创 hdoj 5044 LCA
代码参考hdoj 5044题意:给一棵树,进行若干次操作,每次操作可以增加点u到点v路径上各边或各点的权值。思路:树链剖分lca什么的。。。并不会这题加了数据,所以网上很多以前ac的代码都过不了,学习了上面那份代码。
2015-09-07 01:38:11 534
原创 hdoj 5335 bfs
hdoj 5335题意:给一个n*m的矩阵,矩阵中每小块上有个数字1或0, 一个人从(1,1)点走到(n,m)点,记录沿途的数字,问这个数字最小是多少。思路:先找出发点,如果(1,1)是1,那就从(1,1)开始往右和往下搜,这样可以保证曼哈顿距离递减,数字长度为n+m是最短的;如果(1,1)不是1,那就从(1,1)开始搜起点,这个起点必须是从(1,1)能到达的最远的数字为1的块,这样距离终
2015-09-01 22:30:52 378
原创 hdoj 5344 找规律
hdoj 5344题意:给一个公式得出一个序列A,问序列A中任意两个元素(Ai + Aj)的和的异或结果。思路:注意到Ai+Aj = Aj + Ai 而且A1必定为0, 所以答案就是所有(Ai+Ai)的异或。题目太水就不贴代码了。
2015-08-27 15:02:32 461
原创 hdoj 5289 线段树
hdoj 5289题意:给n个数字,问有多少区间[i, j](i 思路:从左起依次寻找能到达的最右端的区间,答案累加 r - l。#include #include const int M = 100005;inline int max(int a, int b){ return a > b ? a : b;}inline int min(int a, int b){
2015-08-27 14:58:38 405
原创 hdoj 4746 莫比乌斯反演 + 优化
hdoj 4746题意:给三个整数n、m、p,问有多少数对满足gcd(n,m)的素因子(可重复)的个数小于等于p。思路:设函数A(x)为在n和m的所有数对中,gcd = x的数对个数;函数B(x)为在n和m的所有数对中,公约数为x的数对个数,显然B(x) = (n / x) * (m / x)。显然A的数对包含于B的数对中。根据容斥原理得A(x) = u(1) * B(x *
2015-08-14 19:11:19 458
原创 hdoj 4753 博弈+搜索
hdoj 4753题意:给一个九宫格涂边,每次涂的边长为1,如果涂的这条边可以组成p个边长为1的正方形,就加p分,现在Tom和Jerry已经走了若干步,问接下来若两人用最优策略,谁会赢。思路:刚开始没仔细读题以为就是个简单的模拟。。。没想到是个博弈,但是博弈题我没怎么做过啊。。首先要了解必胜态和必败态的概念,在一棵博弈树上,如果该步是叶子节点,那么根据条件分高的就获胜,是必胜态,反之就
2015-08-12 13:46:52 685
原创 hdoj 4749 kmp
hdoj 4749题意:给一组数列A,再给一个匹配数列B,问将A里最多有多少不重叠的大小关系和B一样的数列。思路:典型的kmp,只需要把A和B的关系搞出来匹配就可以了。直接copy了之前写的code改了下。#include#include const int M = 1e5 + 20;int n, m, a[M], b[M], aa[M], bb[M], next[M];v
2015-08-10 18:05:47 433
原创 hdoj 4738 tarjan求无向图的桥
hdoj 4738题意:有n个点m条边,问如果删掉一条边使图不连通,问最少需要多少兵力。每条边都有驻守的士兵,如果想删掉这条边至少要派相同人数的士兵。思路:就是一个连通图求最小权的桥的问题。桥的概念:无向连通图中,删掉某条边可以使原图不连通,那么该边就是无向图的桥。tarjan算法求桥的思想简单说一下:以任意一点开始建立搜索树,记录每个点的搜索深度dep和非父子边能到达的最早节点深
2015-08-10 11:56:33 516
原创 hdoj 4741 异面直线求最近距离及最近点
hdoj 4741拯救助手!题意:建立时空隧道,连接Alpha与Beta世界线,求两世界线的最短距离和最近点位置。思路:三维向量A、B叉乘结果是叉乘向量的垂直向量C,在原直线A上任选一点V向C移动,移动的这段向量也是和B垂直的,这时候用V和直线A做平面Alpha,Alpha就是B的垂直平面,同理可以得到A的垂直平面Beta,而Alpha与B的交点和Beta和A的交点就是两直线最近点,至
2015-08-08 14:51:01 839
原创 hdoj 4747 线段树
hdoj 4747题意:给一个序列,问所有区间[i,j](i思路:看样例:1 0 2 0 1做出以第一个元素1为起点的分别到其他各点的所有区间最小值:0 2 3 3 3发现是一个单调递增序列,实际上对于任何一个样例都是这样的结果,因为随着数字的增加,最小值只会增大。然后我们删掉第一个数字,做第二个元素0的区间最小值:x 1 1 1 3因为我们删掉了0之前的1
2015-08-07 13:06:22 561
原创 hdoj 4737 区间维护
hdoj 4737题意:n个数的序列,任意范围[i, j](i先吐槽一下,这个题的数据真是水!O(n2)的暴力居然能过,而且比O(31*n)还要快!网赛真是勇敢的人才能过题。。参考了一下kuangbin大爷的思路:维护一个区间,区间头节点一直往后走,如果这个区间的值大于等于m,就累加上n-r,说明区间[l, j](r#include #include const int M
2015-08-07 12:16:09 645
原创 hdoj 5001 概率dp
hdoj 5001题意:一个人可以在任意点出发,以相同概率经过相邻点,问不经过各点的概率。思路:dp[i][j]是第i步到达j点,枚举所有的点Vj累加所有的dp[i][Vj]即可。#include #include #include using namespace std;double dp[10020][60], ans[60];vectoredge[60];main(
2015-08-07 11:44:04 414
原创 hdoj 5024 枚举+dfs
hdoj 5024题意:找一条最长的最多有一个90度拐点的路径,输出长度。思路:枚举所有点做拐点,dfs最长路径。#include #include #include #include using namespace std;int d[8][2] = {1, 0, -1, 0, 0, 1, 0, -1, 1, 1, -1, -1, 1, -1, -1, 1};int tu
2015-08-07 11:32:59 378
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人