ACM
文章平均质量分 94
AleiChen
机器学习小白~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STL: vector 的用法
STL: vector 的用法https://blog.youkuaiyun.com/weixin_41743247/article/details/90635931转载 2020-08-13 12:47:24 · 276 阅读 · 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 · 945 阅读 · 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 · 689 阅读 · 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 · 2134 阅读 · 0 评论 -
HDU5831(水题,有一点容易忽略,导致一直WAWAWA)
http://acm.hdu.edu.cn/showproblem.php?pid=5831从开始数,如果‘ ) ’的出现数量减去‘ ( ’大于等于3,则就不可能通过一次交换操作使得这多出来的三个‘ ) ’完全符合题目的要求字符串类别。于是我就直接写了,就WA了。不知错在何处!然后看了同学写的才考虑到了,'( )'这种情况是No,因为一次也不能交换,题目要求交换一次。我的天吶...原创 2016-08-12 20:17:30 · 837 阅读 · 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 · 608 阅读 · 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 · 848 阅读 · 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 · 786 阅读 · 0 评论 -
并查集入门笔记
1.并查集三个操作 |------初始化(par[i]保存根节点的键值) |-------合并(集合) |-------查询(是否在同一集合)2.注意退化的情况,会是复杂度增高,用rak[]数组记录树的高度,每次合并两个树的时候都把深度小的数合并到深度大的树上3.注意每次使用并查集都要给并查集par[]初始化(void init(int n));函数:原创 2016-02-23 21:26:01 · 471 阅读 · 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 · 481 阅读 · 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 · 844 阅读 · 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 · 2171 阅读 · 0 评论 -
codeblocks常用快捷键
==编辑== • 按住Ctrl滚滚轮,代码的字体会随你心意变大变小。 • 在编辑区按住右键可拖动代码,省去拉(尤其是横向)滚动条之麻烦;相关设置:Mouse Drag Scrolling。 • Ctrl+D可复制当前行或选中块,直接粘贴在下一行中。 • Ctrl+Shift+C注释掉当前行或选中块,Ctrl+Shift+X则解除注释。 • Tab缩进当前行或转载 2015-10-26 13:20:02 · 802 阅读 · 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 · 1952 阅读 · 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 · 2168 阅读 · 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 · 843 阅读 · 0 评论 -
划分树(求区间第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 · 1192 阅读 · 0 评论 -
线段树(区间和,最大值,最小值,区间动态更新查询)
//===========================================//segment tree//final version//by kevin_samuel(fenice)//本模板为转载模板,后面的注释和主函数的验证为Alei添加#include #include #include //线段树using namespace s原创 2016-07-29 20:36:41 · 7378 阅读 · 1 评论 -
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 · 1167 阅读 · 0 评论 -
STL中的排序函数(模板)
可以不自定义排序函数,使用C++ STL强大功能实现排序规则,从小到大排序,比较函数设置为:less从大到小排序,比较函数设置为:greater*------sort 与 qsort 区别-----*sort是qsort的优化,sort会根据数组的特点选择不同的排序算法排序std::sort函数优于qsort的一些特点:对大数组采取9项取样,更完全的三路划分算法,更细致的对不原创 2016-08-19 16:17:57 · 979 阅读 · 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 · 4677 阅读 · 2 评论 -
(模板)线性筛素数
如果是判断一个数是否为素数,请参考我的博文:http://blog.youkuaiyun.com/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 · 936 阅读 · 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 · 471 阅读 · 0 评论 -
#week1# hihocoder 1032 最长回文子串
题目链接:http://hihocoder.com/problemset/problem/10321032 : 最长回文子串时间限制:1000ms单点时限:1000ms内存限制:64MB描述 小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。原创 2016-11-08 17:07:53 · 475 阅读 · 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 · 530 阅读 · 0 评论 -
CodeForces 599C Day at the Beach
描述:输入n个整型数据,要求对数据分块,要求分块后对每块数据排序的结果和对所有n个数据排序的结果是相同的。思路很简单,可以分析出一个性质是:本分组的数据最大值一定小于本组后的所有数据最小值。然后分别用两个数组ma[ ], mi[ ]映射n个数据保存前最大值,后最小值,比较输出即可。刚开始做的时候是想着用数据截取判断呢!不过超时了,超时的代码也在下面,思路正确,但是时间复杂度是真的高了。问题:原创 2015-11-28 19:27:50 · 590 阅读 · 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 · 504 阅读 · 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 · 509 阅读 · 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 · 551 阅读 · 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 · 462 阅读 · 0 评论 -
BFS 宽搜 B题 - Igor In the Museum
题意是一个人去参观画室,每一块空地和一个墙之间都有一幅画,给你这个人在空地的位置,他可以到处走动,问此人最多能看到多少幅画。我说说我解这个题的过程:起初没考虑时间复杂度,直接用BFS搜索,然后TLE了,然后一看如果有10W个指令, 不超时才怪。然后想到先保存查询的状态然后查询结果就行。然后又Runtime error in test 11. 这是什么鬼错误,原来是内存溢出,检查一下原来分配点空原创 2016-02-05 16:59:39 · 812 阅读 · 0 评论 -
HDU 1008 Elevator
一个电梯要满足要乘坐人的需求,且电梯上升一层花6s,下降一层花4秒,没停下一次5s,让你计算满足一个序列需求所花费的时间。太水了,刚开始看错题目了,认为序列的所有数字都是floor,原来一个序列的开头是floor的数量啊~~~顿时感到无解,这不是小学生的数学题么?感悟,认真读题目,不要把自己的想像强行加给题目,保持原题目的本意,记得第二次读题目也不要只在第一次的影响下读题。Prob原创 2016-01-12 17:02:56 · 579 阅读 · 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 · 394 阅读 · 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 · 825 阅读 · 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 · 567 阅读 · 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 · 964 阅读 · 0 评论 -
UVA-1584 - Circular Sequence
/***************************************/简单题,小白,第一次写博客,寻找字典排序的最小,直接枚举所有的情况放到容器中,然后sort正向排序后输出最小的那个就好了。可用substr(size_type index)截取字符串实现字符串环。/***************************************/Some DNA seq原创 2015-11-20 22:47:39 · 531 阅读 · 0 评论 -
CodeForces 567C Geometric Progression
经历了一番波折之后终于A了,爽, 有收获产生的疑惑:1. 刚做的时候看了样例怎么也搞不明白第一个样例和第三个样例这不是明显的矛盾吗?后来观察了样例3才明白,等比数列的公比为k的时候,数列元素不一定是看k的倍数。题目理解偏差啊。2.问了自己一下n为2*100000, 暴力的话能过吗?悬,不妨试一发,TLE,我的预算还是准确的。3.怎么优化呢。后来想到预处理,学会了用map数据结构保存ai原创 2016-02-21 23:14:25 · 840 阅读 · 0 评论 -
HDU 4006 The kth great number(优先队列)
第K大的数,我也是醉了,刚开始不能理解第k大的数,一直认为1,2,3这几个三大的数是3啊。真是愚蠢之极啊!!!3最大,3是第一大。然后用一般方法会超时,所以用priority_queue, greater > pq;优先队列,更改了排序为逆序用greater,默认正序排序lessDescriptionXiao Ming and Xiao Bao are playing a原创 2016-02-22 17:39:52 · 389 阅读 · 0 评论 -
CodeForces 593A 2Char(暴力枚举26个字母的组合)
没有想到暴力26个字母组合的情况!因为26*26完全可以暴力,记住DescriptionAndrew often reads articles in his favorite magazine 2Char. The main feature of these articles is that each of them uses at most two distinct lett原创 2016-02-23 21:30:04 · 1004 阅读 · 0 评论
分享