
ACM文档集
为本科期间ACM所积累学习记录的文档
XLacon
一段程序就像一件艺术品,我们需要在创造它之前,用心的去设计。
展开
-
(好文 清晰)数据库中的内连接、自然连接、和外连接的区别
数据中的连接join分为内连接、自然连接、外连接,外连接又分为左外连接、右外连接、全外连接当然,这些分类都是在连接的基础上,是从两个表中记录的笛卡尔积中选取满足连接的记录。笛卡尔积简单的说就是一个表里的记录要分别和另外一个表的记录匹配为一条记录,即如果表A有3条记录,表B也有三条记录,经过笛卡尔运算之后就应该有3*3即9条记录。如下表:自然连接(natural join)自然连接是一种特殊的等...转载 2020-02-13 12:25:14 · 785 阅读 · 0 评论 -
计蒜客蓝桥杯模拟赛 后缀字符串 (同样是用map 自己和大神的区别)
题目 :https://nanti.jisuanke.com/t/A2239我的代码:(想到用map, 还是太弱,时间超限)#include <iostream>#include <algorithm>#include <cstdio>#include <string>#include <map>#include &l...原创 2019-03-22 14:07:21 · 181 阅读 · 0 评论 -
C++中的STL中map用法详解
C++中的STL中map用法详解(搬运一下...写的很好)https://www.cnblogs.com/fnlingnzb-learner/p/5833051.html转载 2019-03-22 13:07:35 · 126 阅读 · 0 评论 -
C++ STL
STL中容器类包括“顺序存储结构”和“关联存储结构”前者包括vector deque list 后者包括set map multiset multimap. 个人感觉这两类的用法很相似,需要体会为什么叫这两个名字和分成了两个组。至于用法会了以下两段代码就明白很多了: set:#include <iostream>#include <cstdio>#inc...原创 2019-02-24 16:07:32 · 146 阅读 · 0 评论 -
问题 F: GlitchBot
问题 F: GlitchBot时间限制:1 Sec内存限制:128 MB提交:213解决:103[提交] [状态] [命题人:admin]题目描述One of our delivery robots is malfunctioning! The job of the robot is simple; it should follow a list of instru...原创 2019-04-13 11:51:36 · 195 阅读 · 0 评论 -
经典的模拟:大数的阶乘
普通的阶乘模拟肯定是不行的,需要按位对阶乘还有乘法过程进行模拟。题目:http://acm.hdu.edu.cn/showproblem.php?pid=1042#include<stdio.h>#include<string.h>#define maxn 50000int f[maxn];int main(){ int i,j,n; w...原创 2019-05-06 21:05:08 · 179 阅读 · 0 评论 -
问题 B: Little Sub and Triples
题目链接:http://icpc.upc.edu.cn/problem.php?cid=1748&pid=1(后有原题)【分析】拿到这道题目很容易推导出 a+b>c 这个式子来,只是推导到这里,就去做题是万万不可行的,为什么思考不在深入一步呢看这一段: 1.x, y, z are unique integers. ...原创 2019-05-05 19:54:48 · 206 阅读 · 0 评论 -
E Sequence in the Pocket
题源:http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5993DreamGrid has just found an integer sequencein his right pocket. As DreamGrid is bored, he decides to play with the sequenc...原创 2019-04-29 21:46:47 · 433 阅读 · 0 评论 -
铁轨 Rails-UVA514(思维题)
链接:https://vjudge.net/problem/UVA-514 UVA这个oj超级难用,时常打不开,而且登录有时候也比较困难。好在题不错,在vj上可以找到这个题我有看网络上的题解,清一色的用栈,对于初学者来说真的很不友好,很不好理解网络上的做法,估计借鉴了刘汝佳老师的解法。在我眼里这个题是一个思维题,仔细思考一会就能够看出门道。我们不妨在去思考一会,用笔在纸上重新模拟一遍,...原创 2018-10-19 16:34:20 · 439 阅读 · 1 评论 -
问题 K: 周期串plus
[提交] [状态] [命题人:外部导入]题目描述如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如abcabcabcabc以3为周期(当然他也以6,12为周期)。输入一个长度不超过100000的串,输出他的最小周期。输入多组测试数据,每组仅一行为一个仅有大写字母组成的字符串。输出对于每组数据输出该字符串的最小周期。样例输入复...原创 2019-04-03 22:21:43 · 178 阅读 · 0 评论 -
对求解RMQ问题的ST算法的理解
源头:https://www.cnblogs.com/Milkor/p/4439468.html说白了就是给定一个数组。指定任意合法区间内的最值问题。学习过线段树的话。自然而然地便可以知道可以利用线段树来解决。而这里提供了另外一种更加强大(在时间复杂度上)的ST算法。(个人觉得这个算法是不能实时修改区间值的。) 让我们讨论该数组:Array 4 2 3 5 6下标 0 ...转载 2018-10-04 08:25:58 · 146 阅读 · 0 评论 -
洛谷1080-国王游戏(深入理解高精度乘 除)
题目链接:https://www.luogu.org/problem/show?pid=1080 国王游戏这个题目的解析可以查看洛谷上的解析,我想写的是有关这个题目中的高精度问题。 #include<bits/stdc++.h>using namespace std;const int maxn=1010;const int maxm=1000000;struct...原创 2018-10-13 12:23:21 · 1028 阅读 · 1 评论 -
尺取法_学习笔记
所谓的尺取法并不是像尺子那样固定刻度距离来去不断的比对得出的结果,而是一种抽象的根据题目要求选取比量标准的“尺子”。还是通过例题来理解:POJ 3061 Subsequencehttp://poj.org/problem?id=3061题意:(摘自《挑战》)给定长度为n的数列整数 a0 a1 a2 .... an-1 以及整数S . 求出总和不小于S的连续子序列的长度的最小值。如果不...原创 2019-05-10 19:45:39 · 188 阅读 · 0 评论 -
java生成指定范围的随机数
源头:https://blog.youkuaiyun.com/weixin_42110638/article/details/84642075生成指定范围内的随机数这个是最常用的技术之一。程序员希望通过随机数的方式来处理众多的业务逻辑,测试过程中也希望通过随机数的方式生成包含大量数字的测试用例。问题往往类似于:如何随机生成 1~100 之间的随机数,取值包含边界值 1 和 100。或者是:...转载 2019-07-26 16:34:21 · 179 阅读 · 0 评论 -
(较难)poj-2054 Color a tree(贪心)
链接:http://poj.org/problem?id=2054这个问题的题解在网络上有很多:推荐:https://www.cnblogs.com/rainydays/archive/2013/08/20/3271277.html代码可以参考我的:#include <cstdlib>#include <cstdio>using namespace s...原创 2018-10-15 11:25:17 · 381 阅读 · 0 评论 -
poj-1328Radar Installation(贪心)
题目链接:http://poj.org/problem?id=1328分析:对于这个题目网络上有很多的博客讲的很好,我就不再重复讲了,依旧是【区间选点问题】;我想说的是编程的思维问题:我们拿到一个新题,绞尽脑汁的去想如何解决。我们在思考的过程中一定要明确哪些点是我们在大脑中假设的,哪些点是我们惯性思维或者就认为是这样的,其实这些都是思维的不严谨。就像这个题,我先给出代码:#inc...原创 2018-10-09 13:50:14 · 146 阅读 · 0 评论 -
poj 2018_Best Cow Fences (求数列中一个字段和最大问题,字段的长度不小于L)
想要理解这个问题我们需要先掌握几个要点:1、对于一个序列,求一个字段它的和最大,没有“长度不小于L的限制”问题。问题分析见:https://blog.youkuaiyun.com/qq_35937273/article/details/827999422、对于一个序列,求一个字段它的和最大,字段的长度不小于L的问题。字段和可以转化成为前缀和相减的形式,也就是说sumi=(a1+a2+...+a...原创 2018-09-22 15:39:55 · 776 阅读 · 0 评论 -
poj 1050_To the max(需要转换思维,求一个字段和最大问题)
分析: 对于此题,首先可以想到的有前缀和,这个题的关键也是前缀和,但是怎么设计这个前缀和是一个好问题。 通常我们所用的前缀和大多都是在一维数组上,可以通过一维数组中的前缀和来求得在一维数组上求一个字段,且使字段的和最大这个问题。推广到二维数组,二维数组中记录的是所在列的前缀和(一定要参照代码理解)。然后通过和一维数组求最大和字段类似的方法,延伸到二维数组(从列上可以直观的看...原创 2018-09-21 13:18:50 · 230 阅读 · 0 评论 -
POJ -1182 食物链
题目链接:http://poj.org/problem?id=1182 转发链接:https://blog.youkuaiyun.com/niushuai666/article/details/6981689 解题思路: 这道题是并查集题目中的经典。。。而且比普通并查集提高了一个档次,下面在基础并查集的前提上讲解并查集的真正用法。 基础回顾: find()函数找根结点的两种写法如下: 第一种递归:...转载 2018-08-14 10:40:55 · 194 阅读 · 0 评论 -
hdu2098 分拆素数和
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2098 对于这道题目需要掌握的就是如何高效的求小于整数n的素数有多少个,然后通过有技巧的遍历就可以很轻松的得到正确答案:#include &lt;iostream&gt;#include &lt;cstdio&gt;#include &lt;cstring&gt;#include &lt原创 2018-08-30 16:33:38 · 164 阅读 · 0 评论 -
HDUOJ 1285-- 确定比赛名次
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1285 确定比赛名次 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 36816 Accepted Submission(s): ...原创 2018-08-20 14:41:20 · 140 阅读 · 0 评论 -
codeforces_B. Barnicle
题目链接:http://codeforces.com/contest/697/problem/B 解析:这是一道比较细的思维题,也可以说成是细节题。因为要考虑的东西真的很多,比如0.00001e2 和 0.00001e6; 1.0e0 : 0.0e0; 1.02021e2 和 1.02021e5 和 1.02021e7 等这些细节都要考虑在内。并且题目中要求的d的范围真的很大为10^100。这...原创 2018-09-14 11:05:52 · 231 阅读 · 0 评论 -
codeforces Photo of The Sky
题目链接:http://codeforces.com/contest/1013/problem/C 题意:给你2*n 个整数,要求你把这2*n个数分为两组,一组为x坐标,一组为y坐标,每组n个数。任你选一种组合方式,让其组成n个点,使得包含所有xy坐标表示的点的矩形(边与坐标轴平行)的最小面积。输出最小面积 分析:对于此题,不要一头扎进怎么组合中,跳出来进行思考。 要求能包含所有点的最小矩...原创 2018-09-12 19:32:15 · 218 阅读 · 0 评论 -
C++ 字符串翻转
文章源头:https://blog.youkuaiyun.com/szu_aker/article/details/52422191#第一种:使用string.h中的strrev函数#include <iostream>#include <cstring>using namespace std; int main(){ char s[]="hello"; ...转载 2019-03-22 13:02:14 · 2649 阅读 · 1 评论 -
C++中的各种进制转换函数汇总及学习
保护知识版权,本文出自:https://www.cnblogs.com/zwjjj/p/9953718.html一.指定格式输出1.C中指定格式输出printf("%05o\n",35); //按八进制格式输出,保留5位高位补零printf("%03d\n",35); //按十进制格式输出,保留3位高位补零printf("%05x\n",35); //按十六进制...转载 2019-02-27 15:25:20 · 945 阅读 · 0 评论 -
UVA 572 Oil Deposits(虽然简单,但能学到东西)
题目:https://cn.vjudge.net/problem/UVA-572这道题目的题解网上有很多就不再写了,写一写做这个题时自己犯得错误:这道题输入是m行n列的字符矩阵,所以输入比较有意思。要是这么输入char pic[105][105];for(int i=0;i<a;i++) for(int j=0;j<b;j++) scanf("%c",...原创 2018-10-29 17:54:36 · 167 阅读 · 0 评论 -
sscanf()函数总结(重要)
源头:https://www.cnblogs.com/lanjianhappy/p/6861728.htmlsscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf( string str, string fmt, mixed var1, mixed var2 ... ); int scanf( const char *format [,ar...转载 2018-10-20 20:40:09 · 227 阅读 · 0 评论 -
c++ string的erase删除方法
源头:https://blog.youkuaiyun.com/u010472607/article/details/80431604之前不是很清楚c++中string如何删除元素,现在记录一下。(参考自 c++ primer plus 第六版 模版类 string)string中提供的成员函数可以用来删除字符串中的字符,这里主要介绍erase方法erase方法原型1. basic_stri...转载 2018-09-26 16:46:14 · 647 阅读 · 0 评论 -
中位数问题分析
对于中位数问题的研究,一道很经典的问题需要知道:货仓选址问题。货仓选址:在一条数轴上有N家商店,它们的坐标分别为A[1]-A[N]。现在需要在数轴上建立一家货仓,每天清晨,从货仓到每家商店都要运送一车商品。为了提高效率,求把货仓建在何处,可以使得货仓到每家商店的距离之和最小。分析:对于这个问题,就是把货仓建在坐标的中位数上时为最优。因为要求的是货仓到每家商店距离之和最小,所以不能考虑其...原创 2018-09-25 17:12:32 · 2479 阅读 · 0 评论 -
codeforces 670C_Cinema
源头:https://www.cnblogs.com/AKMer/p/9696824.html题目传送门:https://codeforces.com/problemset/problem/670/C所谓离散化,就是将数值并不相邻的nn个数据与[1,n][1,n]之间的整数一一对应,并且相对大小关系依然满足原数列的相对大小关系。 (总结的很好)比如1234,123,23,4245,21...转载 2018-09-25 16:32:04 · 315 阅读 · 0 评论 -
二分思想(整数数列上的二分+实数域上的二分)
说到二分思想感觉大家都知道,但可能真的没有去思考过,今天我就来总结一下:其实对于二分来说,我们可以分为两类:1、整数域上的二分 2、实数域上的二分但是总的二分的条件都是一样的:需要序列具有单调性。1、整数域上的二分,分三步 (其中mid最好是>>1 而不是/2, 因为>>1 是向下取整,而/2是向0取整,在负数时很有用) (1)通过分析具体问题...原创 2018-09-22 13:54:02 · 1411 阅读 · 2 评论 -
二进制位异或—理解
对于两个数字按位异或需要思考的一个问题是:异或后的结果是比原来两个数大还是小?接下来看一道题:2018年ACM-ICPC亚洲青岛区域竞赛 K XOR CliqueBaoBao has a sequence a1,a2,...,an. He would like to find a subset S of {1,2,...,n} such that ∀i,j∈S, a...原创 2018-09-16 14:41:42 · 2268 阅读 · 0 评论 -
java 中科学计数法转普通数字表示法 --toPlainString()和stripTrailingZeros()
toPlainString() //转为普遍计数法输出//给一个字符串1.238761976E-10//如何得到0.0000000001238761976这个字符串呢?BigDecimal bd = new BigDecimal("1.238761976E-10"); System.out.println(bd.toPlainString());stripTrailingZero...原创 2018-09-15 10:50:47 · 14166 阅读 · 0 评论 -
C++中整数转字符串的几种方法
源头:http://www.cnblogs.com/hujunzheng/p/5042068.html 方法一 使用ANSI C 中的sprintf();和sscanf();函数。格式化符号%%打印出%符号不进行转换。 %c 整数转成对应的 ASCII 字元。 %d 整数转成十进位。 %f 倍精确度数字转成浮点数。 %o 整数转成八进位。 %s 整数转成字符串。 %x 整数...转载 2018-09-08 14:15:25 · 45350 阅读 · 0 评论 -
对C/C++文件的理解
对于文件的操作: FILE *fopen(const char *filename,const char *mode) 函数是 创建一个和前面FILE 指针相关联的文件流,总的来说有三个功能: 1、为使用而打开一个流 2、把一个文件和此流相连接 3、给此流返回一个FILE指针 (永远的要记住:这是一个文件流,是对流操作,这个流和文件关联而已)FILE * FP;FP=fopen("...原创 2018-06-30 09:25:02 · 148 阅读 · 0 评论 -
再理解:十六进制转八进制
本题来源于蓝桥杯: 问题描述 给定n个十六进制正整数,输出它们对应的八进制数。 输入格式 输入的第一行为一个正整数n (1&lt;=n&lt;=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。 输出格式 输出n行,每行为输入对应的八进制正整数。 注意 输入的十六进制数不会有...原创 2018-03-05 15:32:04 · 1543 阅读 · 0 评论 -
对动态规划理解的很深刻的一篇文章,很有启发性~
源头:https://blog.youkuaiyun.com/f_zyj/article/details/50762144个人感觉,这个方法中有点递推的影子,也许动归本身就和递推有些关系。这个动归不止是时间复杂度低,代码也很简洁(当然,在很多情况下,时间复杂度低的代码,代码会更加复杂,更加长)。学到这里,我想我可以初步回答自己的第二个问题:动态是什么?所谓动态,需要与静态(这里的静态和编程中的狭义上的静...转载 2019-05-02 20:06:15 · 317 阅读 · 0 评论 -
斐波那契数列性质整理(有趣)
参考博客:https://www.cnblogs.com/grenet/archive/2013/04/30/3051984.html https://www.cnblogs.com/Milkor/p/4734763.html https://blog.youkuaiyun.com/m0_37109329/article/detail...原创 2018-10-17 13:21:48 · 3198 阅读 · 0 评论 -
最强素数
题目表述: 小李在你帮助之下轻松战胜了他的同学们,于是满怀恶意的同学出了一个题目来为难小李,作为小李神一样的队友,你又要出力了。 素数41能写成连续6个素数之和:41=2+3+5+7+11+13。 现在要求n以内的素数中,能表示为最多连续素数之和的那个数,如果有多个答案,请输出最大的那个素数。 输入 仅一行,一个整数n。 输出 输出就一个整数,为所求的能表示为最多连续素数和的那个素数。...原创 2018-09-12 10:55:31 · 1398 阅读 · 0 评论 -
几个余数的定理和性质以及它们的应用
源头: https://blog.youkuaiyun.com/yo_bc/article/details/70339543 数论中除了整除以外,还有一个很重要也很难的知识点,就是余数,理解余数性质时,要与整除性联系起来,从被除数中减掉余数,那么所得到的差就能够被除数整除了.在一些题目中因为余数的存在,不便于我们计算,去掉余数,回到我们比较熟悉的整除性问题,那么问题就会变得简单了,这样就需要用到余数中一个...转载 2018-09-04 22:00:19 · 1445 阅读 · 0 评论