ACM思想
Prim233
南阳理工
展开
-
快速求幂取模
公式求幂→二分求幂→快速求幂→快速求幂取模 等不急的可以直接下拉到最后看快速幂取模。直接用C语言的库函数pow()(别忘了它的头文件#include<math.h>),似乎很简单,但是它的时间复杂度高达O(n)。 显然,这很容易超时。 于是有了下面的二分求幂(时间复杂度O(lgn))二分求幂的原理可以用下面这张图表示 用递归来实现,虽然代码有点长,但是很好理解int pow(int a,in原创 2016-02-06 18:02:39 · 2688 阅读 · 6 评论 -
fixed<<setprecision(n)
cout<<fixed<<setprecision(n)<<num<<endl;控制浮点数num小数点后输出n位数。某些变态的题会要求用这种方法输出浮点数!!原创 2016-05-21 19:10:13 · 396 阅读 · 0 评论 -
栈的基本操作
做了括号配对那道题,我才知道有栈这种东西 http://blog.csdn.net/qq_32680617/article/details/50634807让我讲什么是栈,我也讲不出个所以然,毕竟水平有限。 自己理解,栈就是一种特殊的容器,只允许数据单向进出,也就是先进来的后出去。这幅图对于栈的解释还比较形象 首先,栈不是C语言里的东西,好像是c++里的(我也不清楚,毕竟我这专业连C语言课原创 2016-02-04 14:37:18 · 1609 阅读 · 4 评论 -
POJ-3984-迷宫问题(BFS打印路径)
迷宫问题 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16009 Accepted: 9551 Description定义一个二维数组: int maze[5][5] = {0, 1, 0, 0, 0,0, 1, 0, 1, 0,0, 0, 0, 0, 0,0, 1, 1, 1, 0,0, 0,原创 2016-08-06 09:07:39 · 527 阅读 · 0 评论 -
最长公共子序列及最长递增子序列NlogN算法及路径记录
原文链接 最长公共子序列路径记录 最长公共子序列转化为最长递增子序列问题,O( n*log(n) ) (转自:http://karsbin.blog.51cto.com/1156716/966387) 注意到num[i][j]仅在A[i]==B[j]处才增加,对于不相等的地方对最终值是没有影响的。故而枚举相等点处可以对上述动态规划算法进行优化。 举例说明: A:abdba转载 2016-10-15 13:40:00 · 1662 阅读 · 0 评论 -
蔡勒公式(根据日期计算出周几)
题目戳这里NYOJ-219 W=[C/4]-2C+y+[y/4]+[26(m+1)/10]+d-1 (其中[ ]为取整符号)W是所求日期的星期数. 如果求得的数大于7,可以直接对7取余,不过周日就输出为0了。 如果求得的数小于0,可以加上7的倍数,直到结果大于零小于7为止 c是公元年份的前两位数字, y是已知公元年份的后两位数字; m是月数, d是日数. 方括[ ]表示只截取该数的整原创 2016-09-29 18:19:58 · 5408 阅读 · 0 评论 -
筛法求素数
判断一个数是不是素数,最简单的方法#include<stdio.h>int is_sushu(int x)//是素数就返回1,否则返回0{ if(x==1)//1既不是素数也不是合数 return 0; else if(x==2)//2是素数 return 1; else { for(int i=2; i<=sqrt原创 2016-02-03 15:01:04 · 5652 阅读 · 1 评论 -
模板-01背包-完全背包-多重背包
//来一发多重背包模板const int maxn=1005;int cost[maxn];//花费int value[maxn];//价值int num[maxn];//数量int DP[maxn];//花费i的最大价值DP[i]int V;//最大花费int N;//物品种类数量void ZeroOnePack(int Cost,int Value)//01背包{ fo原创 2016-10-17 16:41:30 · 405 阅读 · 0 评论 -
正式赛-ZZULIOJ-1877-蛤玮打扫教室(裸线段树)
Contest - “玲珑杯”郑州轻工业学院第八届ACM程序设计大赛暨河南高校邀请赛-正式赛Problem D: 蛤玮打扫教室Time Limit: 2 Sec Memory Limit: 128 MB Submit: 281 Solved: 55SubmitStatusWeb Board Description现在知道一共有n个机房,算上蛤玮一共有m个队员,教练做了m个签,每个签上写着两个原创 2016-04-20 21:17:28 · 785 阅读 · 0 评论 -
巴什博弈
巴什博弈:只有一堆n个物品,两个人轮流从这堆物品中取物品,规定每次至少取一个,最多取m个,最后取光者得胜。 显然:如果n=m+1,那么由于一次最多只能取m个,所以,无论先取者拿走多少个,后取者都能够一次拿走剩余的物品,后取者拿走k(<=m)个,那么先取者再拿走m+1-k个,结果剩下(m+1)(r-1)个,以后保持这样的取法,那么先取者肯定获胜。总之,要保持给对手留下(m+1)的倍数,就原创 2016-04-19 08:37:51 · 446 阅读 · 0 评论 -
POJ-3468-A Simple Problem with Integers(Lazy算法)
C - A Simple Problem with Integers Time Limit:5000MS Memory Limit:131072KB 64bit IO Format:%I64d & %I64u SubmitStatusPracticePOJ 3468 Description You have N integers, A1, A2, … , AN. You ne原创 2016-05-12 11:48:54 · 726 阅读 · 0 评论 -
sort函数
看了好多网上的资料,写的事无巨细,却不适合小白菜鸟们看。 想想还是自己重新写一遍吧,反正寒假在家也没事做。 水平所限(毕竟初学者),写的肯定既不系统也不科学,将就看吧。排序的算法有很多,冒泡排序,插入排序,选择排序,快速排序等等。 冒泡可能是很多人接触的第一种排序算法。先讲讲为什么用sort排序而不用冒泡。 原因很简单,冒泡排序时间复杂度为O(n^2),而sort作为qsort快速排序的改进原创 2016-02-03 14:07:54 · 2561 阅读 · 1 评论 -
博客中写入特殊字符
在 HTML 中,某些字符是预留的。 在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签。 如果希望正确地显示预留字符,需要用实体名称或者实体编号替代, 以下是几个常用字符显示结果 描述 实体名称 实体编号 空格 < 小于号 <原创 2016-02-03 15:17:05 · 678 阅读 · 0 评论 -
RMQ算法求区间最值
(转载自网络) 1. 概述 RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j<=n),返回数列A中下标在i,j之间的最小/大值。这两个问题是在实际应用中经常遇到的问题,下面介绍一下解决这两种问题的比较高效的算法。当然,该问题也可以用线段树(也叫区间树)解决,算法复杂度为:O(N)~O转载 2016-03-16 09:16:35 · 591 阅读 · 0 评论 -
NYOj-228-士兵杀敌(五)
士兵杀敌(五) 时间限制:2000 ms | 内存限制:65535 KB 难度:5 描述 南将军麾下有百万精兵,现已知共有M个士兵,编号为0~M,每次有任务的时候,总会有一批编号连在一起人请战(编号相近的人经常在一块,相互之间比较熟悉),最终他们获得的军功,也将会平分到每个人身上,这样,有时候,计算他们中的哪一个人到底有多少军功就是一个比较困难的事情。在这样的情况下,南将军却经常会在许多原创 2016-03-29 13:45:26 · 469 阅读 · 0 评论 -
队列的基本操作
和栈差不多,队列也是一种数据结构。 不同的是,队列是先进先出,而栈是先进后出 栈的基本操作:http://blog.csdn.net/qq_32680617/article/details/50634920话不多说,直接上图吧,其实挺简单的,栈会了,队列就是套用 队列为空时,返回为假,否则返回为真。原创 2016-03-07 21:22:53 · 683 阅读 · 0 评论 -
优先队列priority_queue基本操作
队列我们都知道,是一种先进后出的数据结构。 而优先队列是把队列内部的数据,按照一定的优先级排序后,再输出。 值得注意的是,优先队列没有front和back,只有top一种输出方式,这一点很像栈。 优先队列可以通过重载运算符的方法自定义优先级。基本操作priority_queue<int>q;//创建int类型的优先队列q,当然也可以是结构体类型q.empty() //队列为空则返回真,非空返原创 2016-03-10 21:29:31 · 3179 阅读 · 1 评论 -
树状数组略解
今天比赛的时候好多树状数组的题,这里总结一下树状数组的用处。 首先不得不说树状数组的思想简洁而又深刻,短短几行代码,诠释了什么叫“大道至简”,我想算法的魅力或许就在于此。今天比赛的时候,看似简单的题总是超时,当时就敏锐的想到用树状数组解决,然而由于不太熟悉,自己又在本子上推了一遍,最后还是有几道题没来得及看,现在赶紧回来总结一下树状数组。(纯手打,不容易!)先讲讲树状数组的用处,毕竟有了需求,才有原创 2016-03-12 21:25:24 · 1163 阅读 · 5 评论 -
STL-string(4.12)
给自己总结个关于string类的笔记,方便以后查看。 一、string对象的定义,初始化及读写string s1;//默认构造函数,s1为空串string s2(s1);//将s2初始化为s1的副本string s1('wuyang');//将s1初始化为一个字符串面值副本string s1(n,'w');//将s1初始化为'w'的n个副本cin>>s1;//读取有效字符,遇到空格结原创 2016-04-11 15:53:47 · 969 阅读 · 0 评论 -
BUG总结(2017.11.11)
2016 CCPC Hangzhou Onsite用int存储浮点数再映射后可能RE——线段树扫描线中出现 邻接表头指针未初始化为-1——居然习惯性清零了,,,,debug半小时 漏掉约束条件——拆分整数的每个数均不可重复,,,,默认可以重复了 处理可能输入的非法数据原创 2017-10-01 20:44:53 · 419 阅读 · 0 评论