- 博客(40)
- 资源 (1)
- 收藏
- 关注
原创 如何证明一个问题是NP-hard(NP-complete)
原文地址:https://zhuanlan.zhihu.com/p/53085012、本文仅做记录笔记已方便理解使用。判断步骤:1.是否NP?→ 算法结果能否在多项式时间内验证正确性2.是否NP-hard?→使用一个叫做Reduction的技巧,即,如果能用A问题的求解器去求解另一个已知的NP-hard问题,则A问题是NP-hard的Reduction是将两个算法建立联系的一个过程。我们说X reduce 到Y,意味着,假设现在有一个Y的黑盒求解器,于是我们设计一个多项式算法来用Y的求解器.
2022-04-18 15:41:58
1744
原创 Cutting Game POJ - 2311 SG博弈
【题目链接】题意:一张上面有m*n个格子的纸片,可以沿着格子的边缘裁开,先裁出来1*1大小格子的人胜利。input:给出m 和 n(m*n个格子) output:先手若胜利输出“WIN”,否则输出“LOSE”分析:很明显在格子仅剩2*2, 2*3, 3*2的时候都是先手必败(先手一定会把她裁剪成1*x或者x*1形势的格子,然后后手就可以直接裁出来1*1的格子了),在做sg表的时候就可以把这...
2019-05-08 18:32:58
243
原创 Doubloon Game HDU - 4203 博弈
【题目链接】题意大意是:给出n个金币,两人轮流取,每个人只能取k的x(x=0,1,2,3,4……)次方个硬币,问第一个取硬币的人最少取多少个可以保证获胜,若是必输,输出0一开始盲目的使用了SG的模板去做题目,后来发现几乎行不通【数太大了,数组撑不下】然后苦思冥想没有找到规律,就去搜了大佬的答案,发现这个可以通过打表找规律来获得他的规律……贴大佬打的表我们可以发现每当n恰好为k的...
2019-05-07 21:48:35
216
原创 取(m堆)石子游戏 HDU - 2176 nim博弈
【题目链接】一篇题意很清晰的nim博弈,只是多了一点需要输出的东西先取者第1次取子的所有方法可以通过在通过异或计算之后的最终值ans(见代码)与原数组a[]进行异或运算来确定,若ans^a[i]<a[i],则说明可以从a[i]堆石头中取走ans^a[i]个石头,以达到使ans=0的结果。顺便贴一下我学习nim博弈的博客和我练习博弈的题目集代码如下#include<...
2019-04-21 21:55:34
211
原创 Nim ZOJ - 3591 NIM博弈
【题目链接】不贴题面了,题意如下:给出一段代码,将输入的数据通过这段代码运算之后得到博弈的初始数组(石头数量),你每一次可以取连续的几堆,使Alice(先手)在玩的时候,可以获胜,即取走一部分异或值不为0的石头,即可保证获胜分析:看了大佬的题解才知道这个题怎么做,使用全部数字的连续子序列减去异或值为零的连续子序列的数量即可以下例进行说明,若通过代码运算之后得到的石头数量分别为 ...
2019-04-21 21:47:12
163
原创 并查集 atcoder D - 連結 / Connectivity
Time limit : 2sec / Memory limit : 256MBScore : 400 pointsProblem StatementThere are N cities. There are also K roads and L railways, extending between the cities. The i-th road bidirectionally ...
2019-02-16 18:59:28
366
原创 Xor Sum AtCoder - 2272
Time limit : 2sec / Memory limit : 256MBScore : 600 pointsProblem StatementYou are given a positive integer N. Find the number of the pairs of integers u and v (0≦u,v≦N)such that there exist two...
2019-02-14 17:30:31
342
原创 PTA 乙级 旧键盘打字(map[]取值问题)
题目链接如下https://pintia.cn/problem-sets/994805260223102976/problems/994805288530460672题意很简单,主要写一下map相关,对于map的取值,主要有at和[ ]两种操作,at会作下标检查,而[]不会。本题一开始使用了map中的[]取值,导致一直有一个点过不去,改成了at之后就通过了map有关信息个人代码...
2019-02-13 16:42:09
292
原创 PTA乙级1017 A除以B
本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。输入格式:输入在一行中依次给出 A 和 B,中间以 1 空格分隔。输出格式:在一行中依次输出 Q 和 R,中间以 1 空格分隔。输入样例:123456789050987654321 7输出样例:17636684150...
2019-01-27 19:57:03
846
原创 桁和 / Digit Sum -atcoder
Problem StatementFor integers b(b≥2) and n(n≥1), let the function f(b,n) be defined as follows:f(b,n)=n, when n<b f(b,n)=f(b, floor(n⁄b))+(n mod b), when n≥bHere, floor(n⁄b) denotes the large...
2019-01-27 08:17:32
298
原创 高橋君とカード / Tak and Cards AtCoder - 2037
Problem Statement Tak has N cards. On the i-th (1≤i≤N) card is written an integer xi. He is selecting one or more cards from these N cards, so that the average of the integers written on the selec...
2019-01-26 11:11:12
296
原创 PTA 甲级1103
1103 Integer Factorization (30 分)The K−P factorization of a positive integer N is to write N as the sum of the P-th power of K positive integers. You are supposed to write a program to find the K−P ...
2018-12-10 15:03:53
286
原创 PTA 1100 Mars Numbers
People on Mars count their numbers with base 13:Zero on Earth is called "tret" on Mars. The numbers 1 to 12 on Earch is called "jan, feb, mar, apr, may, jun, jly, aug, sep, oct, nov, dec" on Mars, ...
2018-12-05 10:46:35
156
原创 PTA 1101 Quick Sort
There is a classical process named partition in the famous quick sort algorithm. In this process we typically choose one element as the pivot. Then the elements less than the pivot are moved to its...
2018-12-05 10:42:41
235
转载 PTA 1119. Pre- and Post-order Traversals (30)
Suppose that all the keys in a binary tree are distinct positive integers. A unique binary tree can be determined by a given pair of postorder and inorder traversal sequences, or preorder and inorder...
2018-12-01 07:44:14
399
原创 PAT甲级 Radix - 二分
题意极坑他有毒!!!题意:给出来N1,N2,tag,radix四个数,其中tag=1时radix表示n1的进制,等于2时表示N2的进制,然后他说给出来的是N1只能从0-9,a-z里面取值,长度还是10,当时一想,哇,这直接暴力不就可以了么,然后就乐呵呵的去做了,wa到哭之后翻了大佬的博客,才知道,虽然N1取值可以很小,但是他radix可以给你搞个759432758进制啊!!!!然后使用...
2018-11-28 19:06:47
147
原创 PAT甲级-Finding Average
1108 Finding Average (20 分)The basic task is simple: given N real numbers, you are supposed to calculate their average. But what makes it complicated is that some of the input numbers might not be l...
2018-11-21 08:40:37
178
原创 PTA A+B for Polynomials
题意:给出两个多项式的指数和系数,求相加得到的多项式解析:题目看起来不难【就是个人读题英文水平还待提高OTZ】,然后有几个坑点需要注意,一个是注意指数系数都是0的情况,比如一个多项式为fx = 0,再就是注意类似fx = 2x^3838+3x^2+3之类的这种情况,然后基本就没有其他问题了#include<iostream>#include<cmath>#in...
2018-11-18 15:09:58
341
原创 最短路-PAT (Advanced Level) Practice1003 Emergency
题意:给出来n个城市和每个城市的收获,以及两个城市之间的距离,求从某城市到目的城市的最短路有几条,以及其中收获最多的路线收获是多少解析:最短路,稍微做一些改变,最短路学习的网址在这里【网址】贴代码#include<iostream>#include<cmath>#include<stack>#include<cstring>#i...
2018-11-18 14:32:48
166
原创 合集-最近做的几道有坑点的简单题2018.11.18
牛客练习赛31B题意:给出一个无向完全图,U和K【缩写】两人轮流带队前行,u先带队前行,走过的路不能走第二次,直到轮到该某个人带队前行却无路可走时,此人判负。解析:以有三个和四个点的无向完全图为例【画的有点丑】当有三个点时,如上,U先带队走1-3的路,然后K带队走3-2的路,然后U再带队走过2-1的路之后,K就无法前行了,U胜利当有四个点时,如上【①←走的路的顺序】,在前三...
2018-11-18 09:36:41
207
原创 动态规划板子+题目
关于动态规划的详细讲解在→这里 //DP问题 板子//背包问题//1,正向、逆向循环ivoid dp(){ for(int i = 0; i < n; i ++) { for(int j = 0; j <= W; j ++) { if(j+w[i]<=W) { ...
2018-08-15 10:42:38
453
原创 哈夫曼树+题目集
板子1,也是POJ3523的AC代码#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>#include<cmath>using namespace std;const int maxn = 2e4+8;//哈夫曼树int mai...
2018-08-12 17:27:32
4004
原创 HDU1098 Ignatius's puzzle -数论 费马小定理
Ignatius's puzzleTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11555 Accepted Submission(s): 8113 Problem DescriptionIgnatius is po...
2018-08-08 21:26:28
223
原创 HDU1018-求阶乘的位数
题目Big NumberTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 42987 Accepted Submission(s): 21003 Problem DescriptionIn many applicat...
2018-07-31 15:26:30
563
原创 递归与分治【待续】
1,递归与分治的概念直接或者间接调用自身的算法成为递归算法,用函数自身给出定义的函数称为递归函数。分治法的设计思想是:把一个难以解决的大问题,分割成多个规模较小的相同问题,以便各个击破,分而治之。其中子问题不可以重叠,否则一般使用动态规划的思想。分治主要步骤为:分割(常使用均分(n/2)或者偏分(n-1)的思想),递归架构,合并。2,部分实例【递归】1,阶乘函数...
2018-05-24 20:44:51
152
原创 数论-矩阵快速幂
关于矩阵快速幂,自己综合各位大神们的模板敲了个板子,并没有添加取模,只是简单的运算参考资料矩阵快速幂总结#include<iostream>#include<cstring>using namespace std;const int maxn = 100;int n;struct matrix{ int m[maxn][maxn];};matr...
2018-04-30 17:50:24
216
原创 DFS题目及简析【持续刷题,更新中】
2018.4.20UVA572 油田 看了刘汝佳老师的紫皮书上的例题,应该是用了一种叫做洪水填充或者种子填充的算法#include<iostream>#include<cstdio>#include<cstring>using namespace std;char s[101][101];int visit[101][101];int m,...
2018-04-23 21:37:27
677
原创 HDU6222 海伦和他的三角形 (java大数类)
Heron and His TriangleTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Total Submission(s): 923 Accepted Submission(s): 432Problem DescriptionA triangle is a Her...
2018-04-19 18:08:30
219
原创 最小生成树+并查集:题目集及简解
HDU1102 Constructing Roads:比较水,只要把修建的道路置为零就可以计蒜客 灌溉:比上一题还水,直接上手就可以2018.4.14HDU1213 how many tables:一道并查集的题目,不难,但是出了篓子#include<iostream>#include<algorithm>using namespace std;in...
2018-04-17 10:26:17
235
原创 HDU4043 FXTZ
可以总结规律来计算,分子是1*3*5*……(2*n-1),分母是n!*2^n,使用大数类计算即可import java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Sc...
2018-04-15 22:15:03
175
原创 动态规划:矩阵链连乘问题
动态规划之矩阵连乘问题矩阵链乘问题简单而言,便是给定n个矩阵{A1,A2……An},其中Ai与Ai+1是可乘的,考察其连乘时进行计算的最小次数。在计算过程中,不同的加括号方式对于整个计算量有不一样的影响,举例说明:设有三个矩阵{A1,A1,A3}的维数分别为10*100,100*5和5*50,若是按照((A1,A2)A3)顺序计算,最终的计算量为10*100*5+10*5*50 = 7500,若是...
2018-04-14 11:50:57
1774
原创 HDU1006 tick and tick
Tick and TickTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 21216 Accepted Submission(s): 5600Problem Description The three hands of the clo...
2018-04-03 20:05:29
213
原创 关于pow的精度问题,HDU6182
感谢博主解惑,借鉴部分代码A Math ProblemTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2714 Accepted Submission(s): 935Problem Description You are given ...
2018-03-19 09:26:14
549
原创 杂七杂八的资料整理
Apache,PHP&MySQL安装以及配置sublime text 3JAVA配置官网各种插件C/C++配置{详细}
2018-03-15 11:43:55
162
转载 杭电题目分类及简单概况
一,杭电内部给出的分类网址http://acm.hdu.edu.cn/typeclass.php二,直观一点的分类【摘自百度文库】基础题:1000、1001、1004、1005、1008、1012、1013、1014、1017、1019、1021、1028、1029、1032、1037、1040、1048、1056、1058、1061、1070、1076、1089、1090、109
2018-01-22 22:35:26
792
原创 算法讲解以及题目链接储存
BFS广搜题目prim算法kruskal算法图论500题牛顿迭代法线段树DLX算法get,gets,getchar,getline等
2017-12-06 10:54:38
219
原创 HDU1003 MAX SUM 动态规划
先码题目 ******Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 261092 Accepted Submission(s): 62075 Problem Description Given a sequ
2017-11-14 19:00:56
308
转载 RMQ问题
1. 概述RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j之间的最小/大值。这两个问题是在实际应用中经常遇到的问题,下面介绍一下解决这两种问题的比较高效的算法。当然,该问题也可以用线段树(也叫区间树)解决,算法复杂度为:O(N)~O(logN...
2017-08-14 18:28:41
330
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人