ACM
文章平均质量分 94
AleiChen
机器学习小白~
展开
-
STL: vector 的用法
STL: vector 的用法https://blog.csdn.net/weixin_41743247/article/details/90635931转载 2020-08-13 12:47:24 · 197 阅读 · 0 评论 -
博弈简单入门
1.巴什博奕(bush)有一堆石子n个,每次可以取出1~m个,谁最后取完谁赢。问先手赢吗?if(n % (m+1) == 0) 先手输 else 先手赢2.威佐夫博弈(wzf)有两堆石子,数量大于1且任意。两种取法:1.从一堆中取人一个. 2.从两堆中取相同个. 问先手赢?奇异局势,例如(0.0),(1.2)处于奇异局势的人必输,所以要想赢就让对方处于奇异局势。void转载 2016-07-20 20:03:22 · 1999 阅读 · 0 评论 -
c++编程四舍五入算法
1.四舍五入的算法,double x = 12.34567四舍五入保存3位小数,只需要用 ( int )( x * 1000.0 + 0.5 ) / 1000.0 ;注意当保留小数位数多时防止数据越界溢出,所以强制转换成long long 类型2.int 范围 - 2 ^31 ~ 2 ^31 -1 也就是 - 21 4748 3648 ~ 21 4748 3647(21亿)原创 2016-01-12 17:12:43 · 1980 阅读 · 0 评论 -
浅析求素数算法
注意: 如果没有特殊说明, 以下讨论的都是针对n为素数时的时间复杂度1. 根据概念判断:如果一个正整数只有两个因子, 1和p,则称p为素数.代码:bool isPrime(int n){ if(n < 2) return false; for(int i = 2; i < n; ++i) if(n%i == 0) return fa转载 2016-02-28 22:25:01 · 762 阅读 · 0 评论 -
快速幂运算
快速幂其时间复杂度为 O(log₂N), 比O(N)提高了很高效率例如求a的b次幂则只需要从低位到高位取b的二进制位,是1就乘以a^(2^i-1)#include #include #include #include #include #include #include #include #include #include using namespace std;typede原创 2016-03-24 22:38:22 · 403 阅读 · 0 评论 -
并查集入门笔记
1.并查集三个操作 |------初始化(par[i]保存根节点的键值) |-------合并(集合) |-------查询(是否在同一集合)2.注意退化的情况,会是复杂度增高,用rak[]数组记录树的高度,每次合并两个树的时候都把深度小的数合并到深度大的树上3.注意每次使用并查集都要给并查集par[]初始化(void init(int n));函数:原创 2016-02-23 21:26:01 · 387 阅读 · 0 评论 -
HDU Automatic Correction of Misspellings (复杂模拟题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1483复杂模拟,在开始做之前一定要清晰的在草纸上写出模拟的思路和各个模块!!锻炼代码能力!另外发现了一个问题:s.length()-len 例如下面我们看到结果很大,这样就说明是错误的,我们可以先把s1.length()的值给另一个变量,然后再做减法,这样结果就对了还有记原创 2016-10-26 19:49:05 · 604 阅读 · 0 评论 -
CodeForces 705C 我被set.erase(*it)套路了
深夜写题解,我只想说内心是崩溃的。题意:三种操作1.某APP来一个消息 2.读完APPx的所有消息 3.读完前t个消息(是前t个,包括读过的)想法:静下心读懂题意,想好思路再做算法设计要有明确的伪代码,才能保证万无一失set.erase(*it); 删除*it的值之后,你会发现如果你用的是for(it = st.begin(); it != st.end(); it++) ,你会原创 2016-09-29 23:42:16 · 742 阅读 · 0 评论 -
CodeForces 165C 一个可以过但是没过的题
题目链接:http://codeforces.com/contest/165/problem/C题意:给你一个有0和1组成的字符串(10^6),问有多少个包含确定k个1的子串。刚开始没仔细想就放弃了,后来有人过,仔细考虑一下是个水题,首先分情况,当k=0是,k!=0时,然后对每种情况各自处理,第一种情况k=0,那么只需要统计连续0的个数,加到ans中,k!=0是难处理,但是分析思路,我只需原创 2016-10-25 21:22:06 · 475 阅读 · 0 评论 -
HDU5831(水题,有一点容易忽略,导致一直WAWAWA)
http://acm.hdu.edu.cn/showproblem.php?pid=5831从开始数,如果‘ ) ’的出现数量减去‘ ( ’大于等于3,则就不可能通过一次交换操作使得这多出来的三个‘ ) ’完全符合题目的要求字符串类别。于是我就直接写了,就WA了。不知错在何处!然后看了同学写的才考虑到了,'( )'这种情况是No,因为一次也不能交换,题目要求交换一次。我的天吶...原创 2016-08-12 20:17:30 · 743 阅读 · 0 评论 -
HDU 5821(一个数列变换成另一个数列)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5821A: 4 6 5 9 B: 5 6 9 4以上两个数列A和B,问你可以通过交换A中数的位置实现A变成B数列吗?解决方法:把A中每个值应该放在位置的左边写出,对应如下A: 4 6 5 9mov: 4 2 1 3(表示应该放的位置)然后把(4,2,1原创 2016-08-12 20:10:12 · 1969 阅读 · 0 评论 -
codeblocks常用快捷键
==编辑== • 按住Ctrl滚滚轮,代码的字体会随你心意变大变小。 • 在编辑区按住右键可拖动代码,省去拉(尤其是横向)滚动条之麻烦;相关设置:Mouse Drag Scrolling。 • Ctrl+D可复制当前行或选中块,直接粘贴在下一行中。 • Ctrl+Shift+C注释掉当前行或选中块,Ctrl+Shift+X则解除注释。 • Tab缩进当前行或转载 2015-10-26 13:20:02 · 697 阅读 · 0 评论 -
dijkstra--求最短路--要判重边,否则wr
A - Til the Cows Come HomePOJ 2387:http://poj.org/problem?id=2387#include #include #include #include #include #include #include #include #include #include using namespace std;原创 2016-05-04 12:58:04 · 1853 阅读 · 0 评论 -
#week1# hihocoder 1032 最长回文子串
题目链接:http://hihocoder.com/problemset/problem/10321032 : 最长回文子串时间限制:1000ms单点时限:1000ms内存限制:64MB描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。原创 2016-11-08 17:07:53 · 414 阅读 · 0 评论 -
(模板)欧拉函数
在数论中,对正整数n,欧拉函数是少于活等于n的数中与n互质的数的数目。例如φ(8)=4,因为1,3,5,7均和8互质。 (1)求出欧拉函数并打表#define MAX_N 3000005LL phi[MAX_N];void init() //求出1~3000005中各个数的欧拉函数{ int i, j; for(i = 1; i < MAX_N; i++)原创 2016-08-13 14:03:24 · 394 阅读 · 0 评论 -
(模板)线性筛素数
如果是判断一个数是否为素数,请参考我的博文:http://blog.csdn.net/aleichen/article/details/50762187下面是用欧拉函数线性复杂度筛选素数:(1)返回[1..n]区间素数的个数const int MAXN=3000001;int prime[MAXN];//保存素数bool vis[MAXN];//初始化int Prime(int原创 2016-08-13 14:38:30 · 870 阅读 · 0 评论 -
大数素性测试+大数质因数分解(miller-rabin,Pollard_rho算法)
摘自kuangbin博客可以对一个2^63的素数进行判断。可以分解比较大的数的因子但是不明白一个地方是:大数质因子分解的出的数组factor[]的内容重复原因还有包含2,2不是质数啊?望大神赐教不过以后可以处理大数的素性判定了,还可以处理大数素因子分解了happy#include#include#include#include#include#includeusing namespac原创 2016-08-15 15:38:27 · 4463 阅读 · 2 评论 -
STL中的排序函数(模板)
可以不自定义排序函数,使用C++ STL强大功能实现排序规则,从小到大排序,比较函数设置为:less从大到小排序,比较函数设置为:greater*------sort 与 qsort 区别-----*sort是qsort的优化,sort会根据数组的特点选择不同的排序算法排序std::sort函数优于qsort的一些特点:对大数组采取9项取样,更完全的三路划分算法,更细致的对不原创 2016-08-19 16:17:57 · 859 阅读 · 0 评论 -
HDU5792(离散化+树状数组求逆序数)树状数组求逆序深入讲解
求逆序数,用树状数组的方式,操作有两步:1:sum(a[i]),或者i-sum(a[i])2:add(a[i], 1)记得初始化整个bit为0 哦L - Bubble SortTime Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64uSubmit Status Prac原创 2016-07-29 23:25:40 · 1039 阅读 · 0 评论 -
线段树(区间和,最大值,最小值,区间动态更新查询)
//===========================================//segment tree//final version//by kevin_samuel(fenice)//本模板为转载模板,后面的注释和主函数的验证为Alei添加#include #include #include //线段树using namespace s原创 2016-07-29 20:36:41 · 7121 阅读 · 1 评论 -
划分树(求区间第k小值)
F - Kth numberTime Limit:5000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64uSubmit Status Practice HDU 2665DescriptionGive you a sequence and ask you the kth big原创 2016-07-31 20:47:24 · 1083 阅读 · 0 评论 -
字符串匹配优化(KMP)(写+转载)
我的理解:总的来说,由于传统的暴力求字符串匹配复杂度为0(n*m),效率太低。然后出现了KMP算法,效率 0(m+n).其算法的核心在于求解最长前缀后得到要跳过的距离(即不需要去匹配的串直接跳过)题目:DescriptionThe French author Georges Perec (1936–1982) once wrote a book, La di转载 2016-07-23 17:20:11 · 721 阅读 · 0 评论 -
HDU 5826(水题,物理公式推导,积分公式推导直接出结果)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5826题目描述很复杂,全是迷惑人的,重要的就用了一个初速度,其他的方向啦,初始位置啦都无所谓。有物理公式V^2 - V0^2 = 2ax, 由C = Vi * Ai' 和 Xi = Vi * Ti; 则V^2 = V0^2 + 2 * A * V *T; 即 V ^2 = V0^2 + 2原创 2016-08-12 19:58:53 · 846 阅读 · 0 评论 -
HDU 3884(水过O(N ^ 2)的复杂度)
题目连接:http://acm.split.hdu.edu.cn/showproblem.php?pid=3884题目大意:在花费限制为K的情况下,把最多的植物移动到同一个点,每一个植物移动的花费为移动的距离;一看数据是10^4,如果暴力是n^2,肯定过不了但是AC了,让我不禁烦死了一小会.......当我们得知算法的复杂度为n方时,可以再深入分析,第一个n是必须完整遍历的,但是第原创 2016-08-19 16:05:40 · 612 阅读 · 0 评论 -
POJ 3616 B - Milking Time dp(深搜超时)
DescriptionBessie is such a hard-working cow. In fact, she is so focused on maximizing her productivity that she decides to schedule her nextN (1 ≤ N ≤ 1,000,000) hours (conveniently labeled 0原创 2016-04-16 23:26:48 · 441 阅读 · 0 评论 -
蓝桥杯基础练习 十进制转十六进制 读题漏了条件
十进制转十六进制我也是醉了,得了90分,很是纳闷,下载了输入输出文件后才知道原来题目中输入的a的取值范围是02147483647;原来还有0,有错误就做题吧。当你认为算法和程序都对的时候,当你不知道错哪儿的时候,也许是最不值得注意的地方错了。问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,原创 2016-02-16 19:56:52 · 717 阅读 · 0 评论 -
HDU 1005 Number Sequence
我就在想到底有没有循环节,最后我决定,本题目是有循环节的,因为只要出现两个相邻的数值相同,那么他就会重置f(n)的值进入循环,至于是不是1,是不能确定的。如果出现5和5相邻,是不是就从5开始循环了 ,这 也是确定的。这题目真是有点乱。原解释矩阵快速幂。不过还搞不懂,加油。Problem DescriptionA number sequence is defined as follows原创 2016-01-12 17:15:11 · 334 阅读 · 0 评论 -
HDU 1008 Elevator
一个电梯要满足要乘坐人的需求,且电梯上升一层花6s,下降一层花4秒,没停下一次5s,让你计算满足一个序列需求所花费的时间。太水了,刚开始看错题目了,认为序列的所有数字都是floor,原来一个序列的开头是floor的数量啊~~~顿时感到无解,这不是小学生的数学题么?感悟,认真读题目,不要把自己的想像强行加给题目,保持原题目的本意,记得第二次读题目也不要只在第一次的影响下读题。Prob原创 2016-01-12 17:02:56 · 513 阅读 · 0 评论 -
BFS 宽搜 B题 - Igor In the Museum
题意是一个人去参观画室,每一块空地和一个墙之间都有一幅画,给你这个人在空地的位置,他可以到处走动,问此人最多能看到多少幅画。我说说我解这个题的过程:起初没考虑时间复杂度,直接用BFS搜索,然后TLE了,然后一看如果有10W个指令, 不超时才怪。然后想到先保存查询的状态然后查询结果就行。然后又Runtime error in test 11. 这是什么鬼错误,原来是内存溢出,检查一下原来分配点空原创 2016-02-05 16:59:39 · 704 阅读 · 0 评论 -
HDU1021 Fibonacci Again
http://acm.hdu.edu.cn/showproblem.php?pid=1021题目意思:是否f(n)能被3平均分,能就输出yes不能就no.原本以为开个数组,打好表,最后判断是否f(n)== 0 就OK了,谁知道unsight long long 都用了还是wr了。原因数据溢出。最后还是MOD了3.AC了。代码:/***********************原创 2016-01-20 14:32:16 · 383 阅读 · 0 评论 -
CodeForces 596 B Wilbur and Array
描述:给定n个整数都为0,要把这n个整数变成输入的序列。有两种操作:从第i个数开始往后都+1或者-1;直接暴力从前往后走一遍就行,前面的符合序列后就不用管了,相当于只操作两个数,求解hi-h(i-1)的差。记得用数学函数哦:求绝对值解题收获:分析问题的方式不要局限,灵活思维,还有包含了数学中强大的很多函数。题目:DescriptionWilbur the pig is tinkerin原创 2015-11-28 19:52:39 · 474 阅读 · 0 评论 -
HDU1013 Digital Roots 模拟&数论(我不会数论)
http://acm.hdu.edu.cn/showproblem.php?pid=1013可以用模拟水出,刚开始我没有考虑到输入数据可能会很长,所以用的uint64_t 来存的数据,刚开始想的是20位的整数够了吧,没想到time limited了,我一直找原因,哎,还是数据啊,如果说给你一个1000长度的整数也不为过。所以用一个数组先存。然后分离加和。代码:/******原创 2016-01-17 13:51:22 · 441 阅读 · 0 评论 -
CodeForces 602 A. Two Bases
题目描述:水题,只是注意精度,还有如果你要用pow()函数来求解幂,那么注意pow()返回值为double,如果你用long long int 那么就wrong了,及时类型转换可是在大数据时还是出现数据错乱,不知道为什么。思路:都转换成十进制然后比较就行提后分析:用c做十进制的输入输出格式int %dlong int %ldlong long int %I64dun原创 2015-11-28 19:43:44 · 372 阅读 · 0 评论 -
CodeForces 599C Day at the Beach
描述:输入n个整型数据,要求对数据分块,要求分块后对每块数据排序的结果和对所有n个数据排序的结果是相同的。思路很简单,可以分析出一个性质是:本分组的数据最大值一定小于本组后的所有数据最小值。然后分别用两个数组ma[ ], mi[ ]映射n个数据保存前最大值,后最小值,比较输出即可。刚开始做的时候是想着用数据截取判断呢!不过超时了,超时的代码也在下面,思路正确,但是时间复杂度是真的高了。问题:原创 2015-11-28 19:27:50 · 493 阅读 · 0 评论 -
CodeForces 610 B - Harmony Analysis
DescriptionVika has n jars with paints of distinct colors. All the jars are numbered from1 to n and thei-th jar contains ai liters of paint of colori.Vika also has an infinitely long recta原创 2016-02-16 20:04:11 · 468 阅读 · 0 评论 -
CodeForces 600B 二分
输入数组A和B,要求输出数组A中比B[i]小的数的个数。感受:做的时候想想暴力肯定超时,然后就预处理,谁知开错了数组,runtime error, 数组访问越界的错误,才知道开错了内存。然后就想着另开数组分别保存位置和数量,最后直接搜索求解,这种方法也不好,非正解。队长教的。用二分:upper_bound(A, A+N, B[i])- A;返回大于B[i]按照正序应存放的地址,取地址后是下标原创 2016-02-18 19:51:38 · 861 阅读 · 0 评论 -
CodeForces 604B More Cowbell
因为读错题没有思路,没能正确求解。题目中说一个箱子最多能装俩,我却没看到。DescriptionKevin Sun wants to move his precious collection of n cowbells from Naperthrill to Exeter, where there is actually grass instead of corn. Before mo原创 2016-02-18 19:54:47 · 454 阅读 · 0 评论 -
POJ 3615 A - Cow Hurdles 弗洛伊德算法
SubmitStatus Practice POJ 3615 DescriptionFarmer John wants the cows to prepare for the county jumping competition, so Bessie and the gang are practicing jumping over hurdles. Th原创 2016-04-16 23:22:47 · 525 阅读 · 0 评论 -
HDU 3348 coins 最小化纸币数量贪心,和最大化纸币数量贪心
题意:你有1 5 10 50 ·100 (jiao)的纸币数量分别为a1 a2 a3 a4 a5要去买一本价值为 P 的书,要求不用找钱(也就是你出的钱价值量正好是P)问使用最小的纸币数量,最多的纸币数量。思路:一看就是贪心,求最小数量简单,但是求最大数量让我想了很久,第一次想要先最小化数量求出所应用的钱,然后对这些钱(用以小换大的方式去最大化数量),可是一直wrong。应该是这个原创 2016-05-24 17:26:06 · 565 阅读 · 0 评论 -
巧用位运算 ZOJ 3870 Team Formation
DescriptionFor an upcoming programming contest, Edward, the headmaster of Marjar University, is forming a two-man team fromN students of his university.Edward knows the skill level of each stu原创 2016-04-10 18:28:46 · 419 阅读 · 0 评论