算法
Martind
多学多看,积土成山,切磋琢磨,乃成宝器。
展开
-
结构体排序
#include<iostream>#include<cstdio>#include<algorithm>using namespace std;struct Node{ int time,score;}node[1010];///按照score从高到低排序int cmp(struct Node a,struct Node b){ ...原创 2016-05-10 08:36:43 · 357 阅读 · 0 评论 -
hdu 1548
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int n;const int maxn=205;const int inf=0x3f3f3f3f;int vis[maxn],dis[maxn];int mp[maxn][maxn];...原创 2016-07-25 09:15:20 · 307 阅读 · 0 评论 -
BestCoder Round #1
1001->点我传送<- #include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <stack>using namespace std;const int maxn=100005;const ...原创 2016-07-31 23:40:14 · 300 阅读 · 0 评论 -
BestCoder Round #26
1001 Have meal->点我传送<- #include<iostream>#include<cstring>#include<cstdio>using namespace std;int main(){ int n,m; while(~scanf("%d%d",&n,&m)){ ...原创 2016-07-31 23:32:47 · 405 阅读 · 0 评论 -
BestCoder Round #25
刚进行过图论的练习,试着用图论的方法做了一下,挺有意思的!1001题->点我传送<- #include<iostream>#include<cstdio>#include<cstring>#include<queue>using namespace std;const int maxn=10005;co...原创 2016-07-31 23:14:44 · 385 阅读 · 0 评论 -
快速排序
#include<iostream>#include<cstdio>#include<cstring>using namespace std;void quicksort(int num[],int l,int r) { if(l<r) { int ll=l,rr=r; int x=nu...原创 2017-07-01 17:10:53 · 354 阅读 · 0 评论 -
字符串按照字典序排序
用sort()函数对字符串进行字典序排序 定义结构体存储字符串 struct node{ char st[1000];}a[100000]; 定义排序规则字典序 bool cmp(node s1,node s2){ return strcmp(s1.st,s2.st)<0;}降序 b...原创 2016-05-17 12:33:31 · 17224 阅读 · 1 评论 -
sort排序
sort排序默认是从小到大排序#include<iostream>#include<cstdio>#include<algorithm>using namespace std;int cmp(int a,int b){ return a<b;}int cmp1(int a,int b){ return a>b...原创 2016-05-10 09:13:34 · 467 阅读 · 0 评论 -
1004 成绩排名
1004 读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。输入格式:每个测试输入包含1个测试用例,格式为 第1行:正整数n 第2行:第1个学生的姓名 学号 成绩 第3行:第2个学生的姓名 学号 成绩 ... ... ... 第n+1行:第n个学生的姓名 学号 成绩其中姓名和学号均为不超过10个字符的字符串...原创 2017-08-04 13:00:40 · 545 阅读 · 0 评论 -
1003
1003 “答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于PAT的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。得到“答案正确”的条件是:1. 字符串中必须仅有P, A, T这三种字符,不可以包含其它字符;2. 任意形如 xPATx 的字符串都可以获得“答案正确”,其中 x 或者是空字符串,或者是仅由字...原创 2017-08-03 21:47:07 · 691 阅读 · 0 评论 -
1002 写出这个数 (20)
1002 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。输出格式:在一行内输出n的各位数字之和的每一位,拼音数字间有1 空格,但一行中最后一个拼音数字后没有空格。输入样例:1234567890987654321123456789输出样例:yi...原创 2017-08-03 19:42:46 · 551 阅读 · 0 评论 -
1001 害死人不偿命的(3n+1)猜想 (15)
1001题 卡拉兹(Callatz)猜想:对任何一个自然数n,如果它是偶数,那么把它砍掉一半;如果它是奇数,那么把(3n+1)砍掉一半。这样一直反复砍下去,最后一定在某一步得到n=1。卡拉兹在1950年的世界数学家大会上公布了这个猜想,传说当时耶鲁大学师生齐动员,拼命想证明这个貌似很傻很天真的命题,结果闹得学生们无心学业,一心只证(3n+1),以至于有人说这是一个阴谋,卡拉...原创 2017-08-03 19:14:54 · 316 阅读 · 0 评论 -
hdu3790
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int maxn=1005;const int inf=0x3f3f3f3f;int mp[maxn][maxn],mpp[maxn][maxn];int dis[maxn],...原创 2016-07-25 12:16:21 · 476 阅读 · 0 评论 -
hdu 3631
hdu 3631 -->点我传送<-- #include<iostream>#include<cstring>#include<cstdio>using namespace std;const int maxn=305;const int inf=0x3f3f3f3f;int n;int dis[maxn][...原创 2016-07-25 14:37:07 · 469 阅读 · 0 评论 -
卡特兰数
卡特兰数递推公式c[0]=c[]1]=1;for(int i=2;i<=100;i++){c[n]=c[n-1]*(4*i-2)/(i+1);}原创 2016-05-15 08:37:19 · 381 阅读 · 0 评论 -
埃氏筛选法
#include#includeusing namespace std;const int maxn=5000000;int prime[maxn];bool is_prime[maxn+1];int sieve(int n){ int p=0; for(int i=0;i<=n;i++) is_prime[i]=true; is_prime[0]=is_原创 2016-06-16 10:46:38 · 691 阅读 · 0 评论 -
大数运算c++
大数加法string add(string s1,string s2){ if(s1.length()<s2.length()){ string temp=s1; s1=s2; s2=temp; } int i,j; for(i=s1.length()-1,j=s2.length()-1;i>=0;i--,j--原创 2016-07-18 07:49:10 · 491 阅读 · 0 评论 -
扩展欧几里得算法
扩展欧几里得算法int ex_gcd(int a,int b,int &x,int &y){ if(!b){ x=1,y=0; return a; } int ans=ex_gcd(b,a%b,x,y); int t=x; x=y; y=t-a/b*y;}从最终状态反推到最初的状态:假设当前我们要处理的是求原创 2016-07-19 11:57:36 · 297 阅读 · 0 评论 -
汉诺塔问题
题意:塔座1,2,3,塔座1上有n个圆盘,圆盘自上到下,由大到小放。现在要求将塔座1上圆盘移到2上,每次只能移一个且大盘不能放在小盘上,可以将圆盘移到1,2,3任一一个上。#include#includeusing namespace std;int ans;void move(int a,int b){ ans++; printf("第%d步=%d->%d\n",a原创 2017-03-07 11:53:18 · 526 阅读 · 0 评论 -
凯撒密码
凯撒密码凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推X将变成A,Y变成B,Z变成C。由此可见,位数就是凯撒密码加密和解密的密钥。#include原创 2017-03-20 14:22:33 · 1049 阅读 · 0 评论 -
hdu 1874
#include<iostream>#include<cstdio>using namespace std;const int maxn=1005;const int maxm=205;const int inf=0x3f3f3f3f;int n,m,s,t;struct Edge{ int u,v,w;}edg[maxn];void bell...原创 2016-07-23 13:28:16 · 334 阅读 · 0 评论 -
hdu 1789
Doing Homework againDescriptionIgnatius has just come back school from the 30th ACM/ICPC. Now he has a lot of homework to do. Every teacher gives him a de...原创 2016-05-10 10:55:52 · 418 阅读 · 0 评论 -
辗转相除法
利用辗转相除法求最大公约数 int gcd(int a,int b){ if(b==0) return a; return gcd(b,a%b);} 线段上格点的个数题目描述给定平面上的两个格点P1=(x1,y1)和P2=(x2,y2),线段P1P2上,除P1和P2以外一共有几个格点并打印出格点坐标?(格点是指横纵坐标均为整数的点。)(-1...原创 2016-05-13 14:51:31 · 1251 阅读 · 0 评论 -
duoxida的数字游戏
duoxida的数字游戏 [ Submit Code ] [ Top 20 Runs ] Acceteped : 93 Submit : 296 Time Limit : 1000 MS Memory Limit : 65536 KB Description 题目描述 duoxida很喜欢玩...原创 2016-05-14 10:01:37 · 1790 阅读 · 0 评论 -
栈和队列
栈操作 s.empty() 如果栈为空返回true,否则返回falses.size() 返回栈中元素的个数s.pop() 删除栈顶元素但不返回其值s.top() 返回栈顶的元素,但不删除该元素s.push() 在栈顶压入新元素...原创 2016-05-17 18:43:34 · 356 阅读 · 0 评论 -
go实现常见排序算法
排序算法仓库地址排序算法的稳定性和排序算法分类排序算法的稳定性:能保证两个相等的值,在排序前他们的相对位置不变,即a[0]=3,a[5]=3,如果排序后能保证a[0]的3在a[5]的3的前面就是稳定的算法;常见排序算法交换排序选择排序插入排序归并排序冒泡排序快速排序选择排序堆排序直接插入排序希尔排序基数排序交换排序冒泡排序算法思想冒泡排序,就像它的名字一样,像气泡慢慢的浮到水面...原创 2019-07-04 17:08:31 · 277 阅读 · 0 评论