04 2013 档案
摘要:View Code /*判断素数和分解合数Miller-Rabin测试素数,Pollard_Rho分解质因子由于算法本身基于概率,所以存在TLE、WA的可能,多次提交即可*///////////////模板开始//////////////#include <ctime>#include <iostream>#include <algorithm>#include <cmath>using namespace std;#define M 1510#define N 100010#define inf 200000000long long facto
阅读全文
摘要:浙大校内赛的题目,现场比赛的时候只有出两题,后面的模拟题都没时间做了。题意:一辆汽车有个油箱,问他在经过n个加油站后能否到达目的地。每个加油站都有到下一加油站的距离和每升油的价格。就是模拟过程,假设你是开车的你会怎么做,当然是尽量多的使用便宜的油。具体做法见代码:View Code #include <stdio.h>#include <string.h>#include <string>#include <iostream>#include <algorithm>using namespace std;const int Max =
阅读全文
摘要:流迭代器(Stream Iterators)1 输出流迭代器(Ostream Iterators)输出流迭代器可以把指定的内容直接写入指定的ostream。Ostream Iterator的实现原理跟Insert Iterator非常相似,唯一的区别就是Ostream Iterator利用<<输出操作符把值输出到了ostream对象。通过流迭代器,算法就可以使用通用的迭代器接口把相应的内容输出到流对象。下面列出了Ostream Iterator可以进行的所有操作:操作表达式作用效果ostream_iterator(ostream)针对ostream创建一个Ostream Itera
阅读全文
摘要:后缀数组是处理字符串问题的有力工具。其中有些变量需要说明下,sa[i]是排名为第i的后缀所在字符串中的位置。height[i]表示sa[i-1]和sa[i]两个后缀的最长公共前缀,即相邻排名两串的公共前缀。LCP(i,j)也就是后缀数组中第i个和第j个后缀的最长公共前缀的长度例题,uva 12506,求区别所有字符串的最少字符数具体见代码:View Code #include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#inc
阅读全文
摘要:先设计一个记录图书的结构体,包含图书的书名、作者和出版社每步完成都要保存文件,每步开始时都要读入文件。数据用vector保存方便按书名排序,排序需要重载小于号。任务概述:设计一个简单的图书管理程序,能新增、查询、显示、修改和删除图书信息。程序要求:1)图书数据用文件来存储,按书名排序存放。系统自带Sort()直接排序查询显示时每屏不超过20个记录,超过时分屏显示。设置1个计数器,当达到数目时清屏并要认为输入任意键接着输出2)记录修改:能选择修改图书的书名、作者和出版社,书号不可修改。在修改或删除之前需要用户进一步确认,确认无误后再进行操作。修改时先查找到目标后再对目标进行修改。3)支持模糊查询
阅读全文
摘要:运算符重载是很重要的,特别是在有些stl中必需重载小于号才能使用。还有就是输出流的"<<"重载,方便直接cout输出,但是只能有友元函数来重载,因为在cout<<class T <<endl;中其左边类型已经被确定了,必需有这样的友元函数来实现:friend ostream &operator<<(ostream &,Complex &);详见代码(复数类的实例):View Code #include <iostream>#include <cmath>using namespa
阅读全文
摘要:纯虚函数一般是基类中定义的,派生类中必需重定义,不然是缺损的。虚函数一般是一个共有的的成员函数,方便理解详见代码:View Code #include <iostream>using namespace std;class Animal {public: virtual void eat() = 0;//纯虚函数,只能用指针声明 void sleep(){ cout << "睡觉" << endl; }};class Rabbit:public Animal{public: void eat()//子类必需对纯虚函数进行重定义,不然不能声
阅读全文
摘要:问一段数字区间满足奇数位大于其相邻偶数位的数有多少,值得注意的是其第0位是最高位不是最低位 - -。基础的数位DP。dp[19][10][2],分别表示第几位,前一位数是几,这个为是奇数位还是偶数位。View Code #include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <string>using namespace std;#define LL long longconst int Mod = 2520;LL dp[19
阅读全文
摘要:apositiveintegernumberisbeautifulifandonlyifitisdivisiblebyeachofitsnonzerodigits.问一个区间内[l,r]有多少个Beautiful数字范围9*10^18一个数字要被它的所有非零位整除,即被他们的LCM整除,可以存已有数字的Mask,但更好的方法是存它们的LCM{git[i]}intMOD=LCM{1,2,9}=5*7*8*9=252010以内的数字情况为2^3,3^2,5,7所以最小公倍数组合的情况只有4*3*2*2=48所以复杂度大概为19*2520*48*10(状态数*决策数)View Code #inclu
阅读全文
摘要:高斯消元是求方程组解的一般方法:它在求矩阵的逆矩阵的时候也最方便的方法View Code #include <stdio.h>#include <cstring>#include <stdlib.h>#include <math.h>#include <iostream>using namespace std;#define max(a,b) ((a) > (b) ? (a) : (b))#define min(a,b) ((a) < (b) ? (a) : (b))#define eps 1e-6const int Ma
阅读全文
摘要:程序设计要求设计一个Card类来表示单张扑克牌的逻辑模型。如下类图所示。设计一个Deck类用来表示一副52张的扑克牌,公有接口必须包括生成扑克牌、显示扑克牌、洗牌等这样的成员函数。如下类图所示。程序主函数如下:int main() { Deck deck; deck.MakeDeck(); deck.ShowDeck(); return 0;}运行程序能输出一副扑克牌View Code #include <cstring>#include <iostream>#include <time.h>using namespace std;char Suit[4]
阅读全文
摘要:题目大意:给出一个柱形统计图(histogram), 它的每个项目的宽度是1, 高度和具体问题有关。 现在编程求出在这个柱形图中的最大面积的长方形。例如:7 2 1 4 5 1 3 37表示柱形图有7个数据,分别是 2 1 4 5 1 3 3, 对应的柱形图如下,最后求出来的面积最大的图如右图所示。思路:求矩形面积就是要知道宽和高,我们以每一个小矩形为高向两边扩展(扩展到l 和 r),则面积就为h*(r - l);对于前面矩形比我当前扫到点要高,那么这个矩形的 l 必定是前一个矩形的 l .所以我们可以用单调栈维护;正着扫一遍可以得到所有的 l ; 倒着扫一遍得到所有的 r ;详见代码:Vie
阅读全文
摘要:View Code #include <iostream>#include <cstdio>#include <cstring>#include <cmath>using namespace std;#define P(x) (x)*(x)class Point { friend class B;public: Point(double x=0,double y=0) { X = x; Y = y; } Point(Point &a); double get_x(); double get_y(); friend doubl...
阅读全文

浙公网安备 33010602011771号