c++
YogLn
从入门到放弃的蒟蒻
展开
-
快速求二进制
int binary(int a){ int result = 0,j = 1; while(a){ result = result + j*(a%2); a = a/2; j = j*10; } return result;}原创 2020-12-15 10:20:30 · 496 阅读 · 0 评论 -
洛谷P1177 【模板】快速排序 (归并排序)
题目描述利用快速排序算法将读入的N个数从小到大排序后输出。快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料,掌握后独立完成。(C++C++选手请不要试图使用STL,虽然你可以使用sort一遍过,但是你并没有掌握快速排序算法的精髓。)输入输出格式输入格式:第11行为一个正整数N,第2行包含N个空格隔开的正整数a i ,为你需要进行排序的数,数据保证了...原创 2019-07-12 09:31:37 · 463 阅读 · 0 评论 -
洛谷P1059 明明的随机数(桶排思想)
题目描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了NN个11到10001000之间的随机整数(N≤100)(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。输入输出格式输入格式:输入有两行,第11行为11...原创 2019-07-12 10:21:26 · 154 阅读 · 0 评论 -
洛谷P1068 分数线划定
题目描述世博会志愿者的选拔工作正在 A 市如火如荼的进行。为了选拔最合适的人才,AA市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试。面试分数线根据计划录取人数的150%划定,即如果计划录取m名志愿者,则面试分数线为排名第m×150%(向下取整)名的选手的分数,而最终进入面试的选手为笔试成绩不低于面试分数线的所有选手。现在就请你编写程序划定面试分数线,并输出所有进入面试的...原创 2019-07-12 11:17:20 · 114 阅读 · 0 评论 -
洛谷P1781 宇宙总统
题目背景宇宙总统竞选题目描述地球历公元6036年,全宇宙准备竞选一个最贤能的人当总统,共有n个非凡拔尖的人竞选总统,现在票数已经统计完毕,请你算出谁能够当上总统。输入输出格式输入格式:president.in第一行为一个整数n,代表竞选总统的人数。接下来有n行,分别为第一个候选人到第n个候选人的票数。输出格式:president.out共两行,第一行是一个整数m,为当上总统的...原创 2019-07-12 11:46:17 · 99 阅读 · 0 评论 -
洛谷P1101 单词方阵(深搜)
题目描述给一n×n的字母方阵,内可能蕴含多个“yizhong”单词。单词在方阵中是沿着同一方向连续摆放的。摆放可沿着 8 个方向的任一方向,同一单词摆放时不再改变方向,单词与单词之间可以交叉,因此有可能共用字母。输出时,将不是单词的字母用*代替,以突出显示单词。例如: 输入: 输出: ...原创 2019-08-18 16:30:04 · 142 阅读 · 0 评论 -
洛谷P1443 马的遍历
题目链接:https://www.luogu.org/problem/P1443参考代码:#include<bits/stdc++.h>using namespace std;int n,m,sx,sy;int chess[401][401];int dx[8]={2,-2,2,-2,-1,1,-1,1};int dy[8]={1,1,-1,-1,2,2,-2,-2};...原创 2019-08-20 11:38:44 · 100 阅读 · 0 评论 -
洛谷P1192 台阶问题
题目链接:https://www.luogu.org/problem/P1192设a[i]为走到第i阶的方法数假设最多可以走k步,对任意x(x>=k)容易知道1.a[x]=a[x-1]+a[x-2]+…+a[x-k]2.a[x+1]=a[x]+a[x-1]+a[x-2]+…+a[x+1-k]=2*a[x]-a[x-k]所以我们只需要先求出a[1]a[k]然后剩下的a[k+1]a[n...原创 2019-08-24 10:12:50 · 259 阅读 · 0 评论 -
洛谷P1057 传球游戏
题目链接:https://www.luogu.org/problem/P1057题目思路:首先我们来看这道题,意思是说n个人,从1开始每个数都可以向左或向右移动一个单位,求移动m次后又回到1的方式比如2个人 1 2 从1开始:移动2次回到1的方式只有1种。如果只移动1次,那永远回不到1。那如果只移动0次的话,相当于没有移动。若当前位置就是1,那就是一种方法,即不移动,若当前位置不是1,说明...原创 2019-08-24 15:15:42 · 196 阅读 · 0 评论 -
洛谷P1094 纪念品分组
题目描述元旦快到了,校学生会让乐乐负责新年晚会的纪念品发放工作。为使得参加晚会的同学所获得 的纪念品价值相对均衡,他要把购来的纪念品根据价格进行分组,但每组最多只能包括两件纪念品, 并且每组纪念品的价格之和不能超过一个给定的整数。为了保证在尽量短的时间内发完所有纪念品,乐乐希望分组的数目最少。你的任务是写一个程序,找出所有分组方案中分组数最少的一种,输出最少的分组数目。输入格式共n+2行:...原创 2019-08-16 15:42:20 · 144 阅读 · 0 评论 -
洛谷 P1118 [USACO06FEB]数字三角形`Backward Digit Su`…
题目链接:https://www.luogu.org/problem/P1118#include<bits/stdc++.h>using namespace std;int n,sum,h[13],flag,y[13][13];bool v[13];//防止重复void dfs(int step,int ans)//第step个数,ans为总和{ if(ans>su...原创 2019-08-22 10:13:20 · 105 阅读 · 0 评论 -
洛谷P1219 八皇后
题目描述检查一个如下的6 x 6的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。上面的布局可以用序列2 4 6 1 3 5来描述,第i个数字表示在第i行的相应位置有一个棋子,如下:行号 1 2 3 4 5 6列号 2 4 6 1 3 5这只是跳棋放置的一个解。请编一个程序找出所有跳棋放置的解。并把它们以上面的...原创 2019-08-17 09:58:26 · 108 阅读 · 0 评论 -
洛谷P1433 吃奶酪
题目链接:https://www.luogu.org/problem/P1433参考代码:#include<bits/stdc++.h>using namespace std;int n;double dis[16][16],ans=100000,now,x[16],y[16];//两点距离(预处理),最后的结果,现在的距离,每个点的坐标bool vis[16];//奶酪是...原创 2019-08-22 14:34:28 · 231 阅读 · 0 评论 -
让计算机很快地求出a^b%c;
让计算机很快地求出ab暴力相乘的话,电脑要计算 b 次。用快速幂,计算次数在 log 2(b) 级别,很实用。原理 I(1)如果将 a 自乘一次,就会变成 a2 。再把 a2 自乘一次就会变成 a4 。然后是 a^8…… 自乘 n 次的结果是 a^2 n(2)axay = ax+y,这个容易。(3)将 b转化为二进制观看一下:比如b=(11)10 就是 (1011) 2 。从左...原创 2019-08-22 16:00:32 · 339 阅读 · 0 评论 -
高精度 “加减乘除”
加法参考代码:#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#include <algorithm>using namespace std;string add(string str1...原创 2019-08-18 08:39:31 · 112 阅读 · 0 评论 -
洛谷P1605 迷宫
题目背景给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。题目描述无输入格式第一行N、M和T,N为行,M为列,T为障碍总数。第二行起点坐标SX,SY,终点坐标FX,FY。接下来T行,每行为障碍点的坐标。输出格式...原创 2019-08-18 14:23:12 · 101 阅读 · 0 评论 -
next_permutation(a,a+n)
早就听说了了next_permutation 产生全排列的强大,一直到昨晚遇到一个对字符串产生全排列的问题才知道这个函数的强大,我们队是按照dfs去搞全排列,然后在进行字符串的匹配,结果写的很长,过程中还各种debug。。。于是决定今天学一下…next_permutation函数组合数学中经常用到排列,这里介绍一个计算序列全排列的函数:next_permutation(start,end),和...原创 2019-08-23 10:46:29 · 32966 阅读 · 8 评论 -
C++ string字符串修改和替换方法详解
字符串内容的变化包括修改和替换两种。本节将分别讲解字符串内容的修改和字符串内容的替换。字符串内容的修改可以通过使用多个函数修改字符串的值。例如 assign(),operator=,erase(),交换(swap),插入(insert)等。另外,还可通过 append() 函数添加字符。下面逐一介绍各成员函数的使用方法。assign()函数使用 assign() 函数可以直接给字符串赋值...原创 2019-07-07 12:08:13 · 23356 阅读 · 2 评论 -
C++中,string::nops的用法以及和string.find()的区别
////find函数返回类型 size_typestring s("1a2b3c4d5e6f7g8h9i1a2b3c4d5e6f7g8ha9i");string flag;string::size_type position;//find 函数 返回jk 在s 中的下标位置 position = s.find("jk"); if (position != s.npos) //如果没...原创 2019-07-07 09:30:43 · 8360 阅读 · 1 评论 -
KMP算法
视频链接:https://www.bilibili.com/video/av3246487?from=search&seid=5216993177757720410代码连接:https://github.com/mission-peace/interview/blob/master/src/com/interview/string/SubstringSearch.java...原创 2019-07-10 10:13:16 · 322 阅读 · 0 评论 -
C++sort()函数的用法
(一)为什么要用c++标准库里的排序函数Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高!(二)c++标准库里的排序函数的使用方法I)Sort函数包含在头文件为#include的c++标准库中,调用标准库里的排序方法可以不必知道...原创 2019-07-07 19:02:30 · 267 阅读 · 0 评论 -
洛谷P1426 小鱼会有危险吗
题目描述有一次,小鱼要从A处沿直线往右边游,小鱼第一秒可以游7米,从第二秒开始每秒游的距离只有前一秒的98%。有个极其邪恶的猎人在距离A处右边s米的地方,安装了一个隐蔽的探测器,探测器左右x米之内是探测范围。一旦小鱼进入探测器的范围,探测器就会在这一秒结束时把信号传递给那个猎人,猎人在一秒后就要对探测器范围内的水域进行抓捕,这时如果小鱼还在这范围内就危险了。也就是说小鱼一旦进入探测器范围,如果能...原创 2019-07-09 08:55:36 · 85 阅读 · 0 评论 -
洛谷P1003 铺地毯
题目描述为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯。一共有 nn 张地毯,编号从 11 到nn。现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上。地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的编号。注意:在矩形地毯边界和四个顶点上的点也算被地毯覆盖。输入输出格式输...原创 2019-07-09 09:27:34 · 95 阅读 · 0 评论 -
洛谷P1067 多项式输出
题目描述其中,aix^i,称为i次项的系数。给出一个一元多项式各项的次数和系数,请按照如下规定的格式要求输出该多项式:多项式中自变量为 xx,从左到右按照次数递减顺序给出多项式。多项式中只包含系数不为00的项。如果多项式nn次项系数为正,则多项式开头不出现“+”号,如果多项式nn次项系数为负,则多项式以“-”号开头。对于不是最高次的项,以“+”号或者“-”号连接此项与前一项,分别表示此...原创 2019-07-09 10:46:30 · 119 阅读 · 0 评论 -
洛谷P1309 瑞士轮
题目背景在双人对决的竞技性比赛,如乒乓球、羽毛球、国际象棋中,最常见的赛制是淘汰赛和循环赛。前者的特点是比赛场数少,每场都紧张刺激,但偶然性较高。后者的特点是较为公平,偶然性较低,但比赛过程往往十分冗长。本题中介绍的瑞士轮赛制,因最早使用于1895年在瑞士举办的国际象棋比赛而得名。它可以看作是淘汰赛与循环赛的折中,既保证了比赛的稳定性,又能使赛程不至于过长。题目描述2×N 名编号为1∼2N...原创 2019-07-13 09:33:09 · 121 阅读 · 0 评论 -
洛谷P1540 机器翻译
题目背景小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。题目描述这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。假设内...原创 2019-07-09 16:59:00 · 184 阅读 · 0 评论 -
C\C++ 中的绝对值函数:abs()、cabs()、fabs()、labs()
不同类型的数据使用不同类型的绝对值函数:整型:int abs(int i) //返回整型参数i的绝对值复数:double cabs(struct complex znum) //返回复数znum的绝对值 双精度浮点型:double fabs(double x) //返回双精度参数x的绝对值 长整型:long labs(long n) //返回长整型参数n的绝对值 ...原创 2019-07-09 20:08:41 · 53115 阅读 · 1 评论 -
牛客小白月赛16E
小雨有一个 n×n 的矩阵,起点在(1,1),终点在(n,n),只能向下或向右走,且每次只能走 1 步。矩阵上每个点都有一个点权ai,j 。求走到终点的路径有多少不同的点权和。输入描述:第一行,输入一个正整数 n 。接下来 n+1 行,每行 n 个数,表示 aij。输出描述:共一行,输出有多少不同的点权和。参考代码: #include<bits/stdc++.h>...原创 2019-07-13 15:59:23 · 202 阅读 · 0 评论 -
C++ STL--queue 的使用方法
queuequeue 模板类的定义在头文件中。与stack 模板类很相似,queue 模板类也需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。定义queue 对象的示例代码如下:queue q1;queue q2;queue 的基本操作有:入队,如例:q.push(x); 将x 接到队列的末端。出队,如例:q.pop()...原创 2019-07-14 09:14:46 · 155 阅读 · 0 评论 -
C++迭代器的使用和操作总结
正文迭代器是一种检查容器内元素并遍历元素的数据类型。C++更趋向于使用迭代器而不是下标操作,因为标准库为每一种标准容器(如vector)定义了一种迭代器类型,而只用少数容器(如vector)支持下标操作访问容器元素。一.定义和初始化 每种容器都定义了自己的迭代器类型,如vector:vector<int>::iterator iter; //定义一个名为iter的变...原创 2019-07-14 10:08:53 · 209 阅读 · 0 评论 -
C++标准库vector类型的使用和操作总结
vector是一种类型对象的集合,它是一种顺序容器,容器中的所有对象必须都是同一种类型。想了解顺序容器的更多内容:C++顺序容器知识总结。vector的对象是可以动态生长的,这说明它在初始化时可以不用指定大小,而是再使用时根据元素所需的空间动态增长。C++中还有一种常见的类型string,它和vector有很多相似之处,具体可以看《C++标准库string类型的使用和操作总结》这篇博文。下面简单介...原创 2019-07-14 10:15:34 · 178 阅读 · 0 评论 -
洛谷P1012 拼数
有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213又如:n=4时,44个整数7,13,4,246联接成的最大整数为:7424613输入输出格式输入格式:第一行,一个正整数n。第二行,n个正整数。输出格式:一个正整数,表示最大的整数输入输出样例输入样例#1:313 312 343...原创 2019-07-14 15:35:16 · 246 阅读 · 0 评论 -
洛谷P1563 玩具谜题
题目描述小南有一套可爱的玩具小人, 它们各有不同的职业。有一天, 这些玩具小人把小南的眼镜藏了起来。 小南发现玩具小人们围成了一个圈,它们有的面朝圈内,有的面朝圈外。如下图:这时singersinger告诉小南一个谜題: “眼镜藏在我左数第3个玩具小人的右数第11个玩具小人的左数第22个玩具小人那里。 ”小南发现, 这个谜题中玩具小人的朝向非常关键, 因为朝内和朝外的玩具小人的左右方向是...原创 2019-07-10 17:01:33 · 109 阅读 · 0 评论 -
C++中map的详细用法
map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有...转载 2019-07-15 10:46:05 · 2450 阅读 · 0 评论 -
洛谷P1086 花生采摘
题目描述鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!――熊字”。鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图11)。有经验的多多一眼就能看出,每棵花生植株下的花生有多少。为了训练多多的算术,鲁宾逊先生说:“你先找出花生最多的植株...原创 2019-07-11 11:21:20 · 539 阅读 · 0 评论 -
洛谷P1098 字符串的展开
题目描述在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母或数字串替代其中的减号,即,将上面两个子串分别输出为“defgh”和“45678"。在本题中,我们通过增加一些参数的设置,使字符串的展开更为灵活。具体约定如下:(1) 遇到下面的情况需要做字符串的展开:...原创 2019-07-11 15:25:35 · 118 阅读 · 0 评论 -
洛谷P1579 哥德巴赫猜想(升级版)
题目背景1742年6月7日哥德巴赫写信给当时的大数学家欧拉,正式提出了以下的猜想:任何一个大于9的奇数都可以表示成3个质数之和。质数是指除了1和本身之外没有其他约数的数,如2和11都是质数,而6不是质数,因为6除了约数1和6之外还有约数2和3。需要特别说明的是1不是质数。这就是哥德巴赫猜想。欧拉在回信中说,他相信这个猜想是正确的,但他不能证明。从此,这道数学难题引起了几乎所有数学家的注意。哥...原创 2019-07-07 16:17:53 · 88 阅读 · 0 评论