入门篇——算法初步
晴空_万里
条条框框框住的是行为,而不是大脑。
展开
-
(算法练习)——求第k大数
要求:http://codeup.cn/problem.php?cid=100000587&pid=0说明:这一题用的sort。。太懒了。。#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int record[1000000];i...原创 2020-01-19 14:55:29 · 225 阅读 · 0 评论 -
(算法练习)——随机选择算法
《算法练习》P149案例的代码:#include <stdio.h>#include <stdlib.h>#include <ctime>#include <math.h>#include <algorithm>using namespace std;const int maxn = 100010;int A[maxn]...原创 2020-01-19 11:34:17 · 392 阅读 · 0 评论 -
(算法练习)——基础排序III:归并排序
要求:http://codeup.cn/problem.php?cid=100000586&pid=1说明:前面的代码拿来改改……代码:#include <stdio.h>#include <algorithm>#include <string.h>using namespace std;//二路归并排序,输出 const int m...原创 2020-01-18 16:45:33 · 153 阅读 · 0 评论 -
(算法练习)——统计‘PAT’三个字符串的个数
《算法笔记》P148算法真的是秒啊(猫脸.jpg)拓展一下,如果四个字符、五个字符、一连串字符呢?KMP?代码:#include <stdio.h>#include <string.h>const int MAXN = 100010;const int MOD = 1000000007;char str[MAXN];int leftnum[MAXN]={0...原创 2020-01-18 16:27:39 · 217 阅读 · 0 评论 -
(算法练习)——二路归并排序
第一行输入数组中数字个数,第二行输入一组待排序数字,输出排序后的数字代码#include <stdio.h>#include <algorithm>#include <string.h>using namespace std;//二路归并排序,输出 const int maxn = 100;void merge(int A[],int L1,in...原创 2020-01-18 15:14:01 · 450 阅读 · 0 评论 -
(算法练习)——two pointers序列(递增)合并
两个序列合并,多么简单!!!然鹅考试之前我没准备代码,7分没了!!!!代码:#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int merge(int A[],int B[],int C[],int n,int m){ int i = 0,j...原创 2020-01-18 12:53:01 · 185 阅读 · 0 评论 -
(算法练习)——两个指针(two pointers)
这个真的超级有用!代码:#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int main(){ int numrecord[100]; int n,m; while(scanf("%d",&n) != EOF){ for(in...原创 2020-01-18 12:25:06 · 208 阅读 · 0 评论 -
(算法练习)——二分法算快速幂
long long型的输入输出要注意!!《算法笔记》P135#include <stdio.h>#include <math.h>typedef long long LL;LL binaryPow(LL a,LL b,LL m){ if(b == 0) return 1; if(b % 2 == 1) return a * binaryPow(a,b-1,m...原创 2020-01-18 11:43:03 · 193 阅读 · 0 评论 -
(算法练习)——二分法查找相关
记录一下二分法的使用,比较容易理解了,查找第一个比它大(小)的值要注意下代码:#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int A[100];//用二分法找数组A中与x相等的值的下标 int numsearch(int A[],int ...原创 2020-01-18 10:09:06 · 212 阅读 · 0 评论 -
(算法练习)——查找
要求:http://codeup.cn/problem.php?cid=100000585&pid=2说明:这一题也是用的暴力= =内层循环要用个break,这样避免给的数组有重复的时候,重复输出YES;而且加了break系统才给通过#include <stdio.h>#include <string.h>int main(){ int n,m; ...原创 2020-01-18 08:50:29 · 116 阅读 · 0 评论 -
(算法练习)——打印极值点下标
要求:http://codeup.cn/problem.php?cid=100000585&pid=1说明:这一题看上去很简单,but,提交了几个先是答案错误,再是时间超限……依然是用的暴力挨个遍历的代码:#include <stdio.h>#include <string.h>#include <algorithm>using name...原创 2020-01-17 18:11:31 · 406 阅读 · 0 评论 -
(算法练习)——找x
要求:http://codeup.cn/problem.php?cid=100000585&pid=0说明:发现这一题可以直接暴力,所以。。#include <stdio.h>#include <algorithm>#include <string.h>using namespace std;int main(){ int n; i...原创 2020-01-17 14:46:36 · 91 阅读 · 0 评论 -
(算法练习)——找零钱
要求:http://codeup.cn/problem.php?cid=100000584&pid=6说明:虽然提交通过了,但!这绝对是我写过最烂的代码……(肯定有简便的代码,弄个函数?)代码:#include <stdio.h>int main(){ int n; while(scanf("%d",&n) != EOF){ int count5...原创 2020-01-17 11:42:51 · 697 阅读 · 0 评论 -
(算法练习)——出租车费
要求:http://codeup.cn/problem.php?cid=100000584&pid=1说明:学习这种使用while的套路!!代码:#include <stdio.h>#include <algorithm>using namespace std;int main(){ int n; double count = 0; whil...原创 2020-01-17 10:18:31 · 223 阅读 · 0 评论 -
(算法练习)——看电视
要求:http://codeup.cn/problem.php?cid=100000584&pid=0说明:这一题的实质还是区间贪心,拿书上的代码直接就过了代码:#include <stdio.h>#include <algorithm>using namespace std;const int maxn = 110;struct Inteval...原创 2020-01-16 19:51:22 · 181 阅读 · 0 评论 -
(算法练习)——区间贪心
P122依然是注意结构体里面x,y的比较#include <stdio.h>#include <algorithm>using namespace std;const int maxn = 110;struct Inteval{ int x,y;}I[maxn];bool cmp(Inteval a,Inteval b){ if(a.x != b.x...原创 2020-01-16 19:42:44 · 135 阅读 · 0 评论 -
(算法练习)——贪心
P118 月饼贪心主要是记录下结构体中元素的排序#include <stdio.h>#include <algorithm>using namespace std;struct mooncake{ double store; double sell; double price;}cake[1010];//结构体的排序 bool cmp(moon...原创 2020-01-16 18:51:30 · 206 阅读 · 0 评论 -
(算法练习)——神奇的口袋
要求:http://codeup.cn/problem.php?cid=100000583&pid=2这一题充分让我觉得我只能写简单的递归(实际这个也不难,但我想的不是这样的,就……写不出来= =需要好好找找一些递归的代码实现来看看)代码(参考大神的代码写的,也理解了(但为啥自己就想不到呢?))#include <stdio.h>#include <string...原创 2020-01-15 21:54:50 · 445 阅读 · 0 评论 -
(算法练习)——数列
要求:http://codeup.cn/problem.php?cid=100000583&pid=1说明:这一题居然在如何输出三角形上花了不少时间。。。= =太不容易了,这些图形的套路有必要总结一下。。理解起来不难代码:#include <stdio.h>#include <string.h>int F(int a){ if(a == 0 ){ ...原创 2020-01-15 20:13:53 · 243 阅读 · 0 评论 -
(算法练习)——吃糖果
要求:http://codeup.cn/problem.php?cid=100000583&pid=0说明:利用递归的思想来写代码,网上有其他版本的,但感觉下面这种比较好理解,小孩子每天只能吃一颗或两颗糖代码:#include <stdio.h>int count;void F(int a){//利用小孩每天只吃一颗或2颗糖 if(a == 1){ co...原创 2020-01-15 19:06:41 · 783 阅读 · 0 评论 -
(算法练习)——递归
《算法笔记》P116全排列的代码:#include <stdio.h>const int maxn = 11;int n,P[maxn],hashTable[maxn] = {false};void generateP(int index){ if(index == n+1){ for(int i = 1;i <= n;i++){ printf("%d",...原创 2020-01-14 21:25:14 · 187 阅读 · 0 评论 -
(算法练习)——整数奇偶排序
要求:http://codeup.cn/problem.php?cid=100000581&pid=7说明:这一题看上去很简单,做起来也不难,但是,我用了前面的经验(判断getchar是否为换行,非换行则循环),导致在本地测试样例都是对的,提交显示运行错误。。。一番折腾之后改成判断条件n==10,一次就通过了……代码:#include <stdio.h>#inclu...原创 2020-01-14 19:53:16 · 214 阅读 · 0 评论 -
(算法练习)——中位数
要求:http://codeup.cn/problem.php?cid=100000581&pid=6说明:比较简单代码:#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int numrecord[10010];int main...原创 2020-01-14 17:41:02 · 181 阅读 · 0 评论 -
(算法练习)——小白鼠排队
要求:http://codeup.cn/problem.php?cid=100000581&pid=5说明:现在每次提了代码之后盯着那个评分的圈一直转,看到绿色简直快哭出来= =这一题一开始想用结构体,但奈何用了结构体之后反而更麻烦了。。而且结构体排序这一块还不熟,排序也有问题。。。重写改用数组分开统计之后,一次就过了~思路**用一个复制的数组number【2】**记录排序前的数...原创 2020-01-14 17:12:53 · 295 阅读 · 0 评论 -
(算法练习)——Problem B
要求:http://codeup.cn/problem.php?cid=100000581&pid=4说明:这一题题目说只有一组数据就是假的!!依然要用while循环才能通过。。。不难,还是sort的用法,事实上一共是2*n+2个数据代码:#include <stdio.h>#include <string.h>#include <algorit...原创 2020-01-14 16:02:40 · 208 阅读 · 0 评论 -
(算法练习)——字符串内排序
要求:http://codeup.cn/problem.php?cid=100000581&pid=3说明:这一题比较简单,但是题目没说明白——有空格的话,空格是否参与输出呢?写了第一个去空格的反而报错= =实际上怎么输入就怎么输出,中间用个sort就可以了代码:#include <stdio.h>#include <string.h>#include...原创 2020-01-14 13:51:08 · 151 阅读 · 0 评论 -
(算法练习)——谁是你的潜在朋友
要求:说明:这一题一开始理解错题意了,汗,读了好几遍终于明白是什么意思了= =然而代码写的跟狗啃的似的。。。主要就是hash的使用,用空间换时间,比较容易理解了代码:#include <stdio.h>#include <string.h>const int maxn = 210;int hashTable[maxn] = {0};struct code{...原创 2020-01-13 18:01:00 · 154 阅读 · 0 评论 -
(算法练习)——散列
《算法笔记》P107以空间换时间,查询一些数在另一些数中是否出现代码1;#include <stdio.h>const int maxn = 10010;bool hashTable[maxn] = {false};int main(){ int n,m,x; scanf("%d%d",&n,&m); for(int i = 0;i <n;i+...原创 2020-01-12 16:57:49 · 146 阅读 · 0 评论 -
(算法练习)——特殊排序
要求:http://codeup.cn/problem.php?cid=100000581&pid=1说明:依然是用一次sort,只不过输出不同代码:#include <stdio.h>#include <algorithm>using namespace std;struct code{ int m; int record[1010];}n...原创 2020-01-12 11:26:13 · 160 阅读 · 0 评论 -
(算法练习)——排序
要求:http://codeup.cn/problem.php?cid=100000581&pid=0说明:依旧是结构体+数组,感觉这样搭配特别方便代码:#include <stdio.h>#include <algorithm>using namespace std;struct code{ int m; int record[110];}...原创 2020-01-12 10:55:01 · 130 阅读 · 0 评论 -
(算法练习)——PAT A1025
要求:《算法笔记》P103说明:主要是sort函数的用法、cmp函数设定顺序的编写代码:#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;struct Student{ char id[15]; int score; int loca...原创 2020-01-11 18:04:28 · 252 阅读 · 0 评论