
数据结构和算法
文章平均质量分 51
寻找小海螺
这个作者很懒,什么都没留下…
展开
-
Tyvj_P1001 第K极值
P1001 第K极值时间: 1000ms / 空间: 131072KiB / Java类名: Main背景成成第一次模拟赛 第一道描述给定一个长度为N(0输入格式输入格式:第一行为2个数n,k(含义如上题)第二行为n个数,表示这个序列输出格式输出格式:如果m为质数则第一行为'YE原创 2015-02-02 01:04:47 · 970 阅读 · 2 评论 -
Tyvj_P1002 谁拿了最多奖学金
P1002 谁拿了最多奖学金时间: 1000ms / 空间: 131072KiB / Java类名: Main背景NOIP2005复赛提高组第一题描述某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种,获取的条件各自不同:1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以原创 2015-02-02 01:13:42 · 554 阅读 · 1 评论 -
Tyvj_P1003 越野跑
P1003 越野跑时间: 1000ms / 空间: 131072KiB / Java类名: Main背景成成第一次模拟赛 第二道描述 为了能在下一次跑步比赛中有好的发挥,贝茜在一条山路上开始了她的训练。贝茜希望能在每次训练中跑得尽可能远,不过她也知道农场中的一条规定:奶牛独自进山的时间不得超过M秒(1 整条山路被贝茜原创 2015-02-02 01:26:05 · 1249 阅读 · 0 评论 -
Tyvj_P1010 笨小猴
P1010 笨小猴时间: 1000ms / 空间: 131072KiB / Java类名: Main背景NOIP2008复赛提高组第一题描述笨小猴的词汇量很小,所以每次做英语选择题的时候都很头疼。但是他找到了一种方法,经试验证明,用这种方法去选择选项的时候选对的几率非常大!这种方法的具体描述如下:假设maxn是单词中出现次数最多的字母的出原创 2015-02-02 01:38:53 · 531 阅读 · 0 评论 -
Tyvj_P3314 苹果摘陶陶(快排)
P3314 苹果摘陶陶(快排)时间: 1000ms / 空间: 65536KiB / Java类名: Main描述背景 Background 根据去年的Noip普及组第一题衍生出的一题。但是有一点点的恶搞成分在里面..... 描述 Description 话说去年苹果们被陶陶摘下来后都很生气,于是就用最先进的克隆技术把陶陶克隆了好多份>.摘取的规原创 2015-02-02 01:46:13 · 1602 阅读 · 0 评论 -
HDU_1176免费馅饼
Problem Description都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽然在游戏中原创 2015-02-02 02:03:13 · 511 阅读 · 1 评论 -
2014年第五届蓝桥杯预赛题目之李白打酒
标题:李白打酒 话说大诗人李白,一生好饮。幸好他从不开车。 一天,他提着酒壶,从家里出来,酒壶中有酒2斗。他边走边唱: 无事街上走,提壶去打酒。 逢店加一倍,遇花喝一斗。 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。 请你计算李白遇到店和花原创 2015-02-02 11:09:58 · 664 阅读 · 0 评论 -
Tyvj_P3044 极端快排
P3044 极端快排时间: 1000ms / 空间: 65536KiB / Java类名: Main描述精灵王如此机智,得益于年轻时候的好奇心和热爱思考的习惯。 话说当年精灵王只有16岁,就思考这样的问题: 给定n个不同的整数,我们可以通过不断交换相邻的两个元素将它们升序排列呢。精灵王称之为“极端快排”。比如对于序列 9 1 0 5 4 极端快排后是原创 2015-02-02 13:19:13 · 898 阅读 · 1 评论 -
一个简单的C++顺序表
#includeusing namespace std;template class seqlist{ public: seqlist(int size=defaultsize){ if(size>0) { maxsize=size; length=0; elements=new datatype[maxsize]; for(int i=0原创 2015-02-22 14:25:04 · 852 阅读 · 0 评论 -
UVA - 1585 Score
UVA - 1585ScoreTime Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %lluSubmit StatusDescriptionThere is an objective test result such as ``OO原创 2015-03-10 21:27:24 · 485 阅读 · 0 评论 -
UVa-1586
#include#include#includedouble q(char fz,int c){ double d; switch(fz) { case 'C':d=12.01;break; case 'H':d=1.008;break; case 'O':d=16.00;break; case 'N':d=14.01;break; } return d*c;}原创 2015-03-11 21:30:33 · 432 阅读 · 0 评论 -
uva-1225
#includeint a,b,c,d,e,f,g,h,i,l;void r(int k){ switch(k) { case 0:a++;break; case 1:b++;break; case 2:c++;break; case 3:d++;break; case 4:e++;break; case 5:f++;break; case 6:g++;bre原创 2015-03-11 22:25:44 · 547 阅读 · 0 评论 -
uva-10474
#include#includeusing namespace std;const int maxn = 10000;int main(){ int n, q, x, a[maxn], kase = 0; while(scanf("%d%d", &n, &q) == 2 && n){ printf("CASE# %d:\n", ++kase); for(int i = 0;原创 2015-03-15 11:25:17 · 437 阅读 · 0 评论 -
循环链表--主要操作
主函数部分自己写吧原创 2015-04-26 12:15:46 · 770 阅读 · 0 评论 -
双向链表--主要操作
#includetemplate class DoubleList;/*对于DoubleList这个类的前向引用声明*/template class DoubleListNode { //对DoubleListNode这个模板类进行声明private: friend class DoubleList; //将DoubleList这个类声明为自己的友元, //然原创 2015-04-26 12:20:29 · 652 阅读 · 0 评论 -
HDU_1232《畅通工程》
Problem Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列出了每条道路直接连通的城镇。省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可)。问最少还需要建设多少条道路? Input测试输入包含若干测试用例。每个测试用例的第1行给出两个正整数,分别是城镇数目N原创 2015-05-11 18:39:19 · 439 阅读 · 0 评论 -
HDU_1233《还是畅通工程》
#include#include#include#includeusing namespace std;const int maxn = 1000 + 5;vector G[maxn];int p[maxn];void init(int N) { memset(p, 0, sizeof(p)); for(int i = 1; i <= N; i++)原创 2015-05-11 18:51:11 · 512 阅读 · 0 评论 -
HDU_1863《畅通工程》
#include#include#include#includeusing namespace std;const int maxn = 1000 + 5;vector G[maxn];int p[maxn];void init(int N) { memset(p, 0, sizeof(p)); for(int i = 1; i <= N; i++)原创 2015-05-11 18:56:35 · 490 阅读 · 0 评论 -
HDU_1002
#include#includeint main(){ char a[1000],b[1000],c[1001]; int i,j=0,p=0,n,n1,n2; scanf("%d",&n); while(n--) { scanf("%s %s",a,b); printf("Case %d:\n",++j);原创 2015-05-11 21:36:38 · 971 阅读 · 0 评论 -
HDU_1016
#include#include#include#includeusing namespace std;const int Max = 40;bool prime[Max];bool vis[Max];int A[Max];int n;void IsPrime() { prime[0] = prime[1] = 0; prime[2] = 1; for(i原创 2015-05-11 21:37:18 · 830 阅读 · 0 评论 -
HDU_1902
#include#include#includeusing namespace std;const int maxn = 20005;int N[maxn], M[maxn];int buffer[10];int n, m;void scan_d(int &x) { char ch = getchar(); while(!isdigit(ch)) ch = ge原创 2015-05-11 21:40:57 · 869 阅读 · 0 评论 -
HDU_1241
#include#includeusing namespace std;const int maxn = 100 + 5;char pic[maxn][maxn];int m, n, idx[maxn][maxn];void dfs(int r, int c, int id) { if(r = m || c = n) return; if(idx[r][c] > 0原创 2015-05-11 21:40:58 · 860 阅读 · 0 评论 -
HDU_2084
#include#includeint a[105][105];int d[105][105];int max(int i, int j) { return (i > j ? i : j);} int solve(int i, int j, int n) { if( d[i][j] >= 0) return d[i][j]; return d[i][j]原创 2015-05-11 21:44:12 · 327 阅读 · 0 评论 -
HDU_2212
/*第一段程序用来找出 符合的数#include#include#includeint fac(int a) { switch(a) { case 0: return 0; case 1: return 1; case 2: return 2; case 3: return 6; case原创 2015-05-11 21:44:16 · 519 阅读 · 0 评论 -
HDU_5198
#include#includechar s[15];bool b;int tot, l;char t;int main() { while(scanf("%s", s)!= EOF) { tot = 1; t = s[0]; b = 1; l = strlen(s); for(int i =原创 2015-05-11 21:46:35 · 362 阅读 · 0 评论 -
HDU_5199
#include#include#include#includeusing namespace std;const int maxn = 1000005;int h[maxn], q[maxn];int buffer[10];void scan_d(int &x) { char ch = getchar(); while(!isdigit(ch)) ch = g原创 2015-05-11 21:51:34 · 560 阅读 · 0 评论 -
Tsinsen_A1014. 进制转换5
问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。注意 输入的十六进制数不会有前导0,比如012A。原创 2015-05-12 08:04:35 · 765 阅读 · 1 评论 -
Tsinsen_ A1016. 缩小的陆地
问题描述 Fred正在考虑在路易斯安那州找一块土地在上面建造他的房子。在调查过程中,他了解到路易斯安那州的陆地正以每年50平方英里的速度缩小,原因是密西西比河对陆地的侵蚀。由于Fred希望他的余生都能居住在这所房子里,所以他需要知道他的土地是否会被河水侵蚀。 Fred做了更多的研究后发现,正在损失的陆地呈现出一个半圆形的形状,这个半圆是以(0,0)为圆心的圆的X轴以上的部分,X轴以原创 2015-05-12 18:07:53 · 817 阅读 · 0 评论 -
TsinsenA1000,A1001,A1002,A1003,A1004,A1005,A1006,A1007,A1008,A1009,A1010水题记录
A1000...........................................#includeint main() { int a, b; while(scanf("%d%d", &a, &b) != EOF) printf("%d", a+b); return 0;}...............................原创 2015-05-12 18:35:07 · 806 阅读 · 0 评论 -
Tsinsen_A1021. 集合运算
#include#includeconst int maxn = 2000 + 10;int setA[maxn], setB[maxn], AB[maxn], cnt, VIS[maxn];void init() { memset(setA, 0, sizeof(setA)); memset(setB, 0, sizeof(setB)); memset(AB, 0, sizeo原创 2015-05-13 13:06:52 · 902 阅读 · 0 评论 -
Tsinsen_A1024. 瓷砖问题再讨论
问题描述 有一长度为N(1 例如,长度为4的地面一共有如下4种铺法,并且,一共用了长度为1的瓷砖4块: 4=1+2+1 4=1+3 4=2+2 4=3+1 编程求解上述问题。输入格式 只有一个数N,代表地板的长度输出格式 第一行有一个数,代表所有不同的瓷砖铺放方法的总数。 第二行也有一个数,代表这些铺法中长度为原创 2015-05-14 07:01:52 · 1402 阅读 · 0 评论 -
uva129困难的串(回溯法)(判断字符串是否相等)(深搜)
。原创 2015-05-24 10:30:23 · 1008 阅读 · 1 评论 -
手写的qsort快速排序
//手写快排qsort的模板函数void qsort(int* a, int left, int right) { if(left+1 >= right) return ; int i = left, j = right-1, key = a[left]; while(i < j) { while(i < j && key <= a[j]) j--; a[i] = a[j]原创 2015-05-25 12:39:26 · 558 阅读 · 0 评论 -
硬币翻转 蓝桥杯
题目: 小明先把硬币摆成了一个 n 行 m 列的矩阵。 随后,小明对每一个硬币分别进行一次 Q 操作。 对第x行第y列的硬币进行 Q 操作的定义:将所有第 i*x 行,第 j*y 列的硬币进行翻转。 其中i和j为任意使操作可行的正整数,行号和列号都是从1开始。 当小明对所有硬币都进行了一次 Q 操作后,他发现了一个奇迹——所有硬币均为正面转载 2015-05-26 20:27:26 · 801 阅读 · 0 评论 -
素数筛法
#include#include#include#includeconst int n = 10000;bool vis[n];void isp() { int m = sqrt(n+0.5); memset(vis, 0, sizeof(vis)); vis[1] = 1; for(int i = 2; i <= m; i++) if(!vis[i]) for原创 2015-07-23 09:53:14 · 425 阅读 · 0 评论 -
KMP(未测试)
#include#include#includeusing namespace std;int plen, slen;const int MAXN = 1000;int next[MAXN];void getNext(char* p, int* next) { next[0] = -1; int k = -1; int j = 0; while(j < plen) {原创 2015-10-27 19:28:21 · 486 阅读 · 0 评论 -
利用KMP求周期串思路
KMP算法。 这道题考察的是KMP算法中next数组的应用,必须理解透next[]数组代表的含义才能通过它解决这道题。 思路是先构造出 next[] 数组,下标为 i,定义一个变量 j = i - next[i] 就是next数组下标和下标对应值的差,如果这个差能整除下标 i,即 i%j==0 ,则说明下标i之前的字符串(周期性字符串长度为 i)一定可以由一个前缀周期性的表转载 2015-10-27 22:35:58 · 830 阅读 · 0 评论 -
线性表实验
//SeqList.h文件#ifndef SeqList_H //注意这里#ifndef、#endif的用法#define SeqList_Hconst int MaxSize = 10;class SeqList{public: SeqList(){length = 0;} SeqList(int a[], int n); ~SeqList(){} void Insert原创 2015-11-15 23:49:19 · 346 阅读 · 0 评论 -
生成可重集排列
//要注意的问题是:p数组一定要事先排好序#include#includeusing namespace std;int p[5] = {1, 1, 1, 1, 2};int a[5];void print_permutation(int n, int* A, int* P, int cur){ if(cur == n){ for(int i = 0; i < n; i++)原创 2015-11-18 11:43:49 · 484 阅读 · 0 评论 -
下一个排列
//注意 p数组要事先排好序#include#includeusing namespace std;int main() { int n, p[10]; scanf("%d", &n); for(int i = 0; i < n; i++) scanf("%d", &p[i]); sort(p,p+n); do { for(int i = 0; i < n; i++) p原创 2015-11-18 12:04:15 · 402 阅读 · 0 评论