
0、基础
基础
Estrellas_
I am the king of the world.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
全排列
#include<bits/stdc++.h>using namespace std;const int maxn=11; int P[maxn];int flag[maxn]={false};int length;void generate(int index,int arr[]){ if(index==length) { //print(P); for(int i=0;i<length;i++) cout<<P[i]<<" ".原创 2020-06-21 20:30:47 · 279 阅读 · 0 评论 -
快速幂
#include<bits/stdc++.h>using namespace std;int quickM(int a,int b){ if(b==1) return a; int result=a; int count=1; do { if(count<<1<b) { result=result*result; count=count<<1; } else { result*=a; c.原创 2020-06-21 20:01:23 · 221 阅读 · 0 评论 -
stringstream的用法
原文链接:https://zhuanlan.zhihu.com/p/44435521一、//Example:可以用于分割被空格、制表符等符号分割的字符串#include<iostream> #include<sstream> //istringstream 必须包含这个头文件#include<string> using ...转载 2020-03-01 22:45:21 · 230 阅读 · 0 评论 -
string转int函数
string转int函数map<int,string> intToString;map<string,int> stringToInt;int numPerson=0; //总人数 int change(string str){ if(stringToInt.find(str)!=stringToInt.end()) //能找到 { r...原创 2020-01-22 20:36:55 · 569 阅读 · 0 评论 -
指针的引用【* &】
int* a;int* &p=a; //a是一个整型指针,p是a的别名 //对p操作,就是对a操作原创 2020-01-18 17:06:07 · 161 阅读 · 0 评论 -
printf输出格式总结
原文:https://blog.youkuaiyun.com/weixin_30722589/article/details/964008881、%3d:输出3列;不足三列,左侧补空格;超过三列,按本身列数输出。2、%03d:输出3列;不足三列,左侧补0;超过三列,按本身列数输出。#include<stdio.h> #include<string....原创 2020-01-07 20:34:42 · 1154 阅读 · 0 评论 -
集合的划分
给定一个由整数组成的集合,集合中的整数各不相同,现在要将它分为两个子集合:①、这两个子集合的并为原集合、交为空集;②、同时在两个子集合的元素个数n1与n2之差的绝对值 |n1-n2| 尽可能小的前提下,要求它们各自的元素之和S1与S2之差的绝对值 |S1-S2| 尽可能大。求这个 |S1-S2| 等于多少。#include<iostream>#include...原创 2020-01-07 16:20:15 · 1678 阅读 · 0 评论 -
求第k大元素
从 a【left,right】中,返回第k大的数1、随机划分:int randPartition(int a[],int left,int right){ int p=(int)round(1.0*rand()/RAND_MAX*(right-left)+right); swap(a[left],a[p]); int temp=a[left]; while(left<...原创 2020-01-07 15:03:03 · 224 阅读 · 0 评论 -
PAT b1040 有几个PAT ---【打表法】
题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805282389999616字符串APPAPT中包含了两个单词PAT,其中第一个PAT是第 2 位(P),第 4 位(A),第 6 位(T);第二个PAT是第 3 位(P),第 4 位(A),第 6 位(T)。现给定字符串,问一共可以形成...原创 2020-01-06 16:50:03 · 235 阅读 · 0 评论 -
快速排序
1、划分函数:int partition(int a[],int left,int right){ int temp=a[left]; while(left<right) { while(a[right]>temp&&left<right) right--; //别忘了外层while循环条件的限制 a[left]=a[right]; ...原创 2020-01-06 16:17:58 · 146 阅读 · 0 评论 -
产生随机数
1、产生 [0,RAND_MAX] 范围的随机数:#include<iostream>#include<ctime>#include<cstdlib>//#include<bits/stdc++.h> using namespace std;int main(){ srand((unsigned)time(NULL)); ...原创 2020-01-06 15:33:03 · 333 阅读 · 0 评论 -
二路归并排序
1、递归实现(1)、将数组a的[l1,r1]与[l2,r2]区间合并为有序区间:const int maxn=100;//将数组a的[l1,r1]与[l2,r2]区间合并为有序区间 void merge(int a[],int l1,int r1,int l2,int r2){ int temp[maxn]; //先开个大的! int index=0; int i...原创 2020-01-05 22:37:44 · 167 阅读 · 0 评论 -
快速幂
1、求% mtypedef long long ll;ll pow(ll a,ll b,ll m){ ll ans=1; for(int i=0;i<b;i++) { ans=ans*a%m; } return ans; }2、快速幂求% m(递归写法)typedef long long ll;ll pow(ll a,ll b,ll m){...原创 2020-01-03 14:46:25 · 205 阅读 · 0 评论 -
二分
1、二分查找算法笔记 P127//无重复//单增int binarySearch(int a[],int left,int right,int x){ int mid; //在外面建一个变量,省得每次重新创建了。 while(left<=right) { mid=(left+right)/2; if(a[mid]==x) return mid; e...原创 2020-01-02 20:24:16 · 192 阅读 · 0 评论 -
区间不相交问题
区间不相交问题给出n个开区间(x,y),从中选择尽可能多的开区间,使得这些开区间两两没有交集。问最多多少个?区间贪心(算法笔记 P122)#include<iostream>#include<cstdio> #include<algorithm> using namespace std;const int maxn=110...原创 2020-01-02 19:36:26 · 273 阅读 · 0 评论 -
pat b1023 组个最小数 (20分)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805298269634560给定数字 0-9 各若干个。你可以以任意顺序排列这些数字,但必须全部使用。目标是使得最后得到的数尽可能小(注意 0 不能做首位)。例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就是 10015558。现给定...原创 2020-01-02 13:03:48 · 121 阅读 · 0 评论 -
pat b1020 月饼 (贪心法)
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805301562163200月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们...原创 2020-01-02 12:41:34 · 138 阅读 · 0 评论 -
n皇后问题
问题描述n皇后问题是指在一个n*n的国际象棋棋盘上放置n个皇后,使得这n个皇后两两均不在同一行、同一列、同一条对角线上。求合法的方案数。解法一#include<iostream>#include<cmath> using namespace std;//int count=0;int nQueen(int a[],int k,int n)...原创 2019-12-30 23:54:27 · 352 阅读 · 0 评论 -
字符串hash
问题:输入n个3个大写字母的字符串;输入m个查询字符串;输出对应查询字符串在n个字符串中出现的次数。#include<iostream>using namespace std;const int maxn=100;char S[maxn][5];char temp[5];int hashTable[26*26*26+10];int has...原创 2019-12-29 19:50:51 · 136 阅读 · 0 评论 -
1025 PAT Ranking (25分) 【成绩排名】
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805474338127872Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhejiang University...原创 2019-12-29 12:16:30 · 237 阅读 · 0 评论 -
PAT A1060 Are They Equal 【科学计数法】
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805413520719872If a machine can save only 3 significant digits, the float numbers 12300 and 12358.9 are considered equal since they...原创 2019-12-28 22:44:09 · 165 阅读 · 0 评论 -
vector访问与赋值
1、vector元素的访问:访问可以用下标访问,只要不越界,都是有效数据#include<iostream>#include<vector>using namespace std;int main(){ vector<int> a; a.push_back(10); cout<<a[0]; return 0;...原创 2019-03-13 15:10:18 · 2871 阅读 · 0 评论 -
插入排序
插入排序两层循环。内层循环,将元素与前面有序区元素比较,通过通过不断后移,腾出本次要插入的位置。#include<iostream>using namespace std;void insertSort(int a[],int n){ for(int i=1;i<n;i++) { int temp=a[i]; int j; for(j=i...原创 2019-12-28 16:40:00 · 145 阅读 · 0 评论 -
选择排序
选择排序基于比较与交换。两层循环。#include<iostream>#include<cstdio>using namespace std;void selectSort(int a[],int n){ for(int i=0;i<n;i++) { int k=i; for(int j=i;j<n;j++) { ...原创 2019-12-28 15:45:04 · 129 阅读 · 0 评论 -
PAT b1009 说反话
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805314941992960给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词...原创 2019-12-28 15:29:58 · 201 阅读 · 0 评论 -
Codeup 5901: 【字符串】回文串
题目描述读入一串字符,判断是否是回文串。“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。输入一行字符串,长度不超过255。输出如果是回文串,输出“YES”,否则输出“NO”。样例输入12321样例输出YES#include<cstdio>#include<cstring> co...原创 2019-12-28 10:27:05 · 190 阅读 · 0 评论 -
pat b1022 D进制的A+B
题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805299301433344 https://www.nowcoder.com/pat/6/submission-detail/629544221022D进制的A+B输入两个非负 10 进制整数A和B(≤230−1)...原创 2019-12-27 23:59:52 · 191 阅读 · 0 评论 -
递归的几种类型
原文:https://blog.youkuaiyun.com/qq_34039315/article/details/786790291、阶乘递归思想:n! = n * (n-1)! (直接看公式吧)首先分析数列的递归表达式:int f(int n){ if(n<=1) return 1; else return n*f(n-1);}2、斐波那契数列斐波那...原创 2019-12-25 23:41:00 · 2584 阅读 · 0 评论 -
普通递归与尾递归求解n!
普通递归与尾递归求解n!#include<cstdio>//求解n!//递归方法int f(int n){ if(n==1)return 1; else return f(n-1)*n;} //尾递归方法int f_w(int n,int result) //n:表示是n的阶乘 result:部分积 { if(n==1) return res...原创 2019-12-25 23:14:34 · 352 阅读 · 0 评论 -
Ruby 浅谈尾递归
来源:https://ruby-china.org/topics/36896初入豆厂的时候就经常听到一些有经验的老员工谈到尾递归,当时我也不怎么当回事。相信许多初入职场的同学也跟我一样对于一些与自己所做工作似乎没有直接关系的东西一般都持排斥的态度。现在回想起来真想扇自己两巴掌,如果当时能够好好的了解一下这些概念的话,或许我能更早地发现编程里面更深层次的乐趣。直到最近翻阅《SICP》...转载 2019-12-25 22:24:43 · 343 阅读 · 0 评论 -
【语法篇】14、浅谈递归函数
来源:https://www.jianshu.com/p/c9a145ca1bc3一、什么是递归其实上节课讲到函数的最后,我们打了一个比方:把主程序中的顺序比喻成正常的时间顺序,遇到函数调用,即相当于做梦,可以跳出当前时空,做完梦之后又会回到做梦的时空处。有一些“梦”会比较有意思,在梦里继续做了同样的梦,这就叫做递归。我们用最最浅显易懂的一个故事来说明:老和尚讲故事...转载 2019-12-25 21:47:49 · 271 阅读 · 0 评论 -
P进制转10进制
P进制转10进制#include<cstdio>int PtoTen(int x,int p){ int value=1; //权值 int ans=0; while(x) { int temp=x%10; //获取低位 ans+=temp*value; value*=p; x/=10; //实现循环次数的控制 } return a...原创 2019-12-25 17:29:55 · 720 阅读 · 0 评论 -
Codeup 1928: 日期差值
题目:http://codeup.cn/problem.php?id=1928题目描述有两个日期,求两个日期之间的天数,如果两个日期是连续的我们规定他们之间的天数为两天。输入有多组数据,每组数据有两行,分别表示两个日期,形式为YYYYMMDD输出每组数据输出一行,即日期差值样例输入2013010120130105样例输出5#include&l...原创 2019-12-25 14:59:47 · 195 阅读 · 0 评论 -
PAT b1032 挖掘机技术哪家强
问题:https://pintia.cn/problem-sets/994805260223102976/problems/994805289432236032为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。输入格式:输入在第 1 行给出不超过105的正整数N,即参赛人数。随后N行,每行给出一位参赛者...原创 2019-12-25 13:37:24 · 271 阅读 · 0 评论 -
PAT b1036 跟奥巴马一起编程
问题:https://pintia.cn/problem-sets/994805260223102976/problems/994805285812551680美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014 年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!...原创 2019-12-25 13:34:33 · 176 阅读 · 0 评论 -
Codeup1007: A+B 输入输出练习VIII
题目描述你的任务是计算若干整数的和。输入输入的第一行为一个整数N,接下来N行每行先输入一个整数M,然后在同一行内输入M个整数。输出对于每组输入,输出M个数的和,每组输出之间输出一个空行。样例输入34 1 2 3 45 1 2 3 4 53 1 2 3样例输出10156#include<cstdio>#include&l...原创 2019-12-24 22:57:21 · 185 阅读 · 0 评论 -
【char* 字符指针的用法】及【输出NULL的问题】
一、char* 字符指针的用法:1、几点概念:char test[ ]="ab c\0d ef";char * p=test;*p ====>所指的单个字符。p ====>相当于字符数组的名字,整个数组。2、代码:#include<iostream>using namespace std;int main(){ ...原创 2019-03-20 00:23:50 · 2759 阅读 · 0 评论 -
string与数字相互转换
一、reverse函数用法:①、reverse函数头文件: #include<algorithm> 。②、reverse函数第二个参数为末元素的下一个地址。1.reverse函数反转string#include <iostream>#include <algorithm>//#include <cstring>using...原创 2019-03-12 10:51:16 · 2856 阅读 · 0 评论 -
C++中string、char *、char[]、const char*的转换
简述:1)char*转string:可以直接赋值。2)char[]转string:可以直接赋值。3)char*转char[]:不能直接赋值,可以循环char*字符串逐个字符赋值,也可以使用strcpy_s等函数。4)string转char[]:不能直接赋值,可以循环char*字符串逐个字符赋值,也可以使用strcpy_s等函数5)string转char*:调用string对...转载 2019-03-18 09:55:38 · 623 阅读 · 0 评论 -
string与char数组相互转换
一、char数组转string:1、可以直接赋值。2、代码:#include<iostream>using namespace std;int main(){ char a[]=" abc d\0efg "; string s=a; //直接赋值 cout<<s; return 0; }3、结果:二、st...原创 2019-03-20 17:07:26 · 44778 阅读 · 4 评论