ACM之路
Infinity_Izayoi
这个作者很懒,什么都没留下…
展开
-
Leetcode 括号题合集 (持续更新)
Leetcode 32 Longest Valid Parentheses题解用栈来模拟整个过程。首先在栈里放入一个-1,-1用来以后计算位置使用。当目前字符是左括号,那么入栈;当目前字符是右括号,把栈中最上面元素pop出来,代表去掉一个潜在的对应左括号。此时分为两种情况:栈中有对应的左括号。此时直接计算当前位置与pop后栈顶元素的差即可,同时维护最大值栈为空。此时代表这个右括号没有对应左括号。此时把当前位置入栈,和-1的原理一样,用于计算未来的括号长度。最后维护的最大值即是答案代码原创 2021-04-19 15:41:28 · 321 阅读 · 0 评论 -
leetcode 1835. Find XOR Sum of All Pairs Bitwise AND (位运算的性质)
题目链接leetcode 1835. Find XOR Sum of All Pairs Bitwise AND题目大意有整数数组list1和list2,求list1中的每个数 与 list2中的每个数做and运算后所有数字的异或和题解本题需要使用到位运算中的一个性质,即逻辑与对逻辑异或满足分配律推导过程List1 = [a1, a2, a3]List2 = [b1, b2, b3]ans = (a1 & b1) ^ (a1 & b2) ^ (a1 & b3) ^原创 2021-04-19 05:43:07 · 231 阅读 · 0 评论 -
位运算的性质
##位运算的性质本文对位运算的性质做一个大概的概括,用于之后的复习###交换律A | B = B | A A & B = B & AA ^ B = B ^ A###结合律(a|b)|c = a|(b|c)(a&b)&c = a&(b&c)(a^b)^c = a^(b^c)###分配律与(&)对异或(^)满足分配律A & (B ^ C) = (A & B) ^ (A & C)相关题目链接: le原创 2021-04-19 05:27:05 · 224 阅读 · 0 评论 -
Leetcode105 & 106. Construct Binary Tree from Preorder and Inorder Traversal
根据前序遍历和中序遍历构建一个二叉树我真是一个可恨的菜逼/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * }...原创 2020-02-21 03:14:29 · 159 阅读 · 0 评论 -
HDU - 1285 确定比赛名次(拓扑排序)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1285题解:拓扑排序AC代码:#include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;int inDeep[550],n,m;int topo[550],t,G[500]原创 2016-07-18 22:38:07 · 399 阅读 · 0 评论 -
POJ 1236 Network of Schools(Tarjan + 缩点 + 计算出度and入度)
题目链接:http://poj.org/problem?id=1236题解:第一个问题很好搞,计算出入度,入度为0的输出就好了。 第二个问题嘛。。。看了大牛博客,才搞懂的,大牛是这么说的:“将这个图的所有子树找出来,然后将一棵子树的叶子结点(出度为0)连到另外一棵子树的根结点上(入度为0),这样将所有的叶子结点和根节点全部消掉之后,就可以得到一整个强连通分量,看最少多少条边,这样就是看叶子结点和根原创 2016-08-01 21:35:59 · 313 阅读 · 0 评论 -
HDU 1827 - Summer Holiday(Tarjan + 缩点 + 计算入度)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1827题解:与POJ 2553类似,只不过这个是计算入度。AC代码:#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;vector <int> mapp[500原创 2016-08-01 21:33:34 · 376 阅读 · 0 评论 -
POJ 2553 - The Bottom of a Graph(Tarjan + 缩点 + 计算出度)
题目链接:http://poj.org/problem?id=2553题解:Tarjan搞一下,然后缩个点,最后计算一下出度,出度为0的按顺序输出就好了。 贴个大神博客,看了他的讲解我对Tarjan了解加深不少: http://blog.csdn.net/mengxiang000000/article/details/51672725AC代码:#include <iostream>#inclu原创 2016-08-01 21:31:40 · 314 阅读 · 0 评论 -
POJ 3013 Big Christmas Tree(SPFA)
题目链接:http://poj.org/problem?id=3013题意:给你一颗树,每棵子树的造价 = 子树上所有节点的和 * 子树和父亲节点的权值。求最小造价,如果不能造出来输出No Answer。题解:其实这颗树的造价就是源点1到每个点的距离与每个点的造价的乘积。故可以转化成最短路求解,求单源最短路可以使用SPFA求。AC代码:#include <iostream>#include <al原创 2016-08-28 10:57:42 · 397 阅读 · 0 评论 -
Gym 100792K King's Rout(拓扑排序)
题目链接:http://codeforces.com/gym/100792/problem/K题解:按照题目要求,拓扑排序后要求小数尽量靠前,所以倒着拓扑排序,使用一个优先队列,最后倒数输出就可以了。AC代码:#include <iostream>#include <cstdio>#include <cstring>#include <queue>using namespace std;i原创 2016-08-18 10:59:14 · 482 阅读 · 0 评论 -
2016 Multi-University Training Contest 4 - 1012(树状数组求逆序数 )
题目链接:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1012&cid=707题意:给出一组数字,求第i个数字在冒泡排序中能走到的最左端与最右端位置的差的绝对值。题解:考虑一个位置上的数字c在冒泡排序过程的变化情况。c会被其后面比c小的数字各交换一次,之后c就会只向前移动。数组从右向左扫,树状数组维护一下得到每个值右边有多少个原创 2016-07-28 19:40:05 · 340 阅读 · 0 评论 -
HDU 2594 - Simpsons’ Hidden Talents(扩展kmp模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2594题意:所谓扩展kmp: 给出主串S和模式串T,长度分别为slen和tlen,要求在线性时间内,对于每个S[i](0<=iAC代码:#include <iostream>#include <cstdio>#include <cstring>#include <string>using nam原创 2016-07-28 19:45:09 · 525 阅读 · 0 评论 -
HDU 3062 - Party (2 - SAT)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3062题解:Tarjan缩点后,观察是否有夫妻同时被染上了同一种颜色,有就NO没有就YES。 贴一下自己学习2 - SAT时看的大神博客: http://blog.csdn.net/jarjingx/article/details/8521690AC代码:#include <iostream>#in原创 2016-08-02 10:56:59 · 334 阅读 · 0 评论 -
HDU 2048 神、上帝以及老天爷(错排公式)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2048题解:错排公式搞一发就好了。 错排公式: f(n) = n![1-1/1!+1/2!-1/3!+……+(-1)^n*1/n!] AC代码:#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>us原创 2016-08-01 21:37:47 · 414 阅读 · 0 评论 -
HDU 2222 - Keywords Search(AC自动机模板)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2222题解:AC自动机模板,丢个模板就跑,真刺激AC代码:#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int kind = 26;struc原创 2016-07-29 15:24:55 · 284 阅读 · 0 评论 -
POJ 2653 - Pick-up sticks(判断两条直线相交)
题目链接:http://poj.org/problem?id=2653题解:暴力走起,从一条线开始枚举,如果和后面的有相交就去掉。AC代码:#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;struct node{ double x1, y1,原创 2016-07-29 16:46:08 · 275 阅读 · 0 评论 -
POJ 1873 The Fortified Forest(二进制枚举+凸包)
题目链接:http://poj.org/problem?id=1873题解:学会了一个新的枚举方法。。二进制枚举。。然后凸包搞一搞就好了AC代码:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <vector>using namespace原创 2016-07-30 13:35:28 · 280 阅读 · 0 评论 -
CSU 1320 盛水(卡特兰数)
题目链接:http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1320题解:贴一下越大爷的博客: http://blog.csdn.net/tjandbj/article/details/51495609AC代码:#include <iostream>#include <cstdio>#include <cstring>#include <alg原创 2016-08-03 21:39:58 · 695 阅读 · 0 评论 -
POJ 1185 炮兵布阵 (动态规划)
题目链接:http://poj.org/problem?id=1185AC代码:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;#define legal(a,b) a&bint row,col; //行列int nums; //仅是两个炮兵不互原创 2016-08-03 21:43:34 · 423 阅读 · 0 评论 -
POJ 3648 Wedding (Tarjan + 缩点 + 拓扑排序)
题目链接:http://poj.org/problem?id=3648题解:2-SAT问题,不过我用Tarjan + 缩点 + 拓扑排序做的。。。这样可以输出一组可行解,但是我不知道怎么输出字典树最小的解。。比较尴尬。AC代码:#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <原创 2016-08-04 20:31:59 · 496 阅读 · 0 评论 -
HDU 1814 - 和平委员会(2-SAT)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1814题解:开始想用Tarjan缩点后拓扑排序搞定,后来怎么也不会输出最小字典序比较尴尬。。。最后还是学习了别人的暴力搜索2-SAT搞定了。。。AC代码:#include <iostream>#include <cstdio>#include <algorithm>#include <cstring原创 2016-08-04 20:35:27 · 888 阅读 · 0 评论 -
HDU 5793 A Boring Question (数学)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5793题解:2016多校训练赛6的第一题。。。开始没发现打表能够找出规律,汗,打表后找出规律发现是个等比数列,直接求和公式搞一发就好了,记得用乘法逆元和快速幂取模。AC代码:#include <iostream>#include <cstring>#include <algorithm>#inclu原创 2016-08-04 20:40:04 · 448 阅读 · 0 评论 -
2016 Multi-University Training Contest 4 - 1011 Where Amazing Happens(水水水)
题目链接:http://acm.hdu.edu.cn/contests/contest_showproblem.php?pid=1011&cid=707题解:没啥好说的。。。暴力搞了一发,图片挺激情的AC代码:#include <iostream>#include <algorithm>#include <cstring>#include <string>using namespace st原创 2016-07-28 19:42:16 · 235 阅读 · 0 评论 -
HDU 1217 Arbitrage(floyd)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1217题意:给出一些货币的汇率,求能不能套利润。题解:此题可以转化为求最短路,只是最短路的求法变成了乘法,而且此题不可以使用dijstra,因为<1时就相当于加法里的负权环了,还要注意使用floyd时不可以加上i!=j!=k的条件,因为最后是要回到原点的。AC代码:#include <iost原创 2016-08-28 17:29:22 · 383 阅读 · 0 评论 -
POJ 1125 Stockbroker Grapevine(spfa)
题目链接:http://poj.org/problem?id=1125题意:这道题题意比较难理解,于是我根据题目数据YY了一下,题目是给出每个点到其他点的时间,求出遍历所有点后,到达最远点时所花的时间以及出发点,这道题和HDU 4460比较相似,但是HDU 4460数据后来加强了,至今还是T。题解:n次SPFA即可。AC代码:#include <iostream>#include <cstdio>原创 2016-08-28 17:33:16 · 373 阅读 · 0 评论 -
csu 1812(半平面交求面积)
半平面交原创 2017-05-06 14:47:52 · 603 阅读 · 0 评论 -
HDU4404 Worms(计算多边形和圆的重叠面积)
计算几何原创 2017-04-22 21:52:27 · 735 阅读 · 0 评论 -
csu 1806(前向星+spfa+自适应辛普森)
最短路+数值运算原创 2017-05-01 16:46:25 · 407 阅读 · 0 评论 -
HDU 4417 树状数组
树状驻足原创 2017-04-29 10:57:39 · 470 阅读 · 0 评论 -
POJ 1230 Pass-Muraille (贪心)
贪心原创 2017-03-08 19:47:35 · 340 阅读 · 0 评论 -
poj 1458 Common Subsequence(lcs)
acm动态规划原创 2017-02-15 16:35:32 · 310 阅读 · 0 评论 -
poj 1062 昂贵的聘礼(最短路dijkstra)
acm图论原创 2017-02-15 15:21:41 · 312 阅读 · 0 评论 -
poj 1837 Balance(动态规划)
acm动态规划原创 2017-02-15 15:11:57 · 406 阅读 · 0 评论 -
HDU 1786 Tempter of the Bone again(大数+完全背包)
acm 完全背包原创 2017-02-15 14:54:41 · 456 阅读 · 0 评论 -
poj 3508 Hide That Number(模拟大数减法)
acm模拟大数减法原创 2017-02-15 14:42:36 · 600 阅读 · 0 评论 -
poj 3512 Incidental Points(计算几何)
acm计算几何原创 2017-02-15 14:25:08 · 305 阅读 · 0 评论 -
zoj 3781 Paint the Grid Reloaded(前向星+缩点+最短路)
图论原创 2017-02-20 17:15:23 · 467 阅读 · 0 评论 -
hdu 5748 && poj 2533 最长上升子序列(o(nlogn)做法)
acm 动态规划原创 2017-02-16 13:27:18 · 364 阅读 · 0 评论 -
HDU 1016 Prime Ring Problem(dfs)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016题意:输出所有满足 相邻两个数的和是素数的环。题解:运用dfs, 从1开始搜索, 只要满足和上一个数互质就存到数组里,终止条件为搜索了n-1次 并且 最后一个数加1是质数时输出,输出数组里所有数字。AC代码:#include <iostream>#include <algorithm>#incl原创 2017-01-14 19:26:26 · 245 阅读 · 0 评论 -
POJ 3041 Asteroids(匈牙利算法)
题目链接:http://poj.org/problem?id=3041题意:给一张图,每次可以消灭一行或一列的小行星,问最少射击多少次可以消灭所有小行星。题解:可以理解为最大匹配问题,即同一行或者同一列只能有一个小行星,问最多可以放多少小行星。AC代码:#include <iostream>#include <algorithm>#include <cstdio>#include <cstri原创 2016-09-17 10:46:24 · 425 阅读 · 0 评论