![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
algorithm
记录本人在学习算法时遇到的问题与解决方案
@lazypet~
let me get better
展开
-
csp:相反数
201403-1试题名称: 相反数时间限制: 1.0s内存限制: 256.0MB问题描述: 问题描述 有 N 个非零且各不相同的整数。请你编一个程序求出它们中有多少对相反数(a 和 -a 为一对相反数)。输入格式 第一行包含一个正整数 N。(1 ≤ N ≤ 500)。 第二行为 N 个用单个空格隔开的非零整数,每个数的绝对值不超过1000,保证这些整数各不相同。输出格式 只输出一个整数,即这 N 个数中包含多少对相反数。样例输入51 2 3 -1 -2样例输出2#i原创 2020-12-04 15:30:03 · 275 阅读 · 0 评论 -
csp:ISBN
问题描述 每一本正式出版的图书都有一个ISBN号码与之对应,ISBN码包括9位数字、1位识别码和3位分隔符,其规定格式如“x-xxx-xxxxx-x”,其中符号“-”是分隔符(键盘上的减号),最后一位是识别码,例如0-670-82162-4就是一个标准的ISBN码。ISBN码的首位数字表示书籍的出版语言,例如0代表英语;第一个分隔符“-”之后的三位数字代表出版社,例如670代表维京出版社;第二个分隔之后的五位数字代表该书在出版社的编号;最后一位为识别码。 识别码的计算方法如下: 首位数字乘以1加原创 2020-12-04 15:13:15 · 240 阅读 · 0 评论 -
csp:出现次数最多的数
试题编号: 201312-1试题名称: 出现次数最多的数时间限制: 1.0s内存限制: 256.0MB问题描述: 问题描述 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。 输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。输出格式 输出这n个次数中出现次数最多的数。如果这样的数有多原创 2020-12-04 14:38:26 · 225 阅读 · 1 评论 -
sscanf 和 sprintf对数字与字符的转换
#include <cstdio>#include <string>using namespace std;int main(){ int n; scanf("%d",&n); char s[20]; sprintf(s,"%d",n);//number change into char arr printf("%s",s); string s2(s); //char arr change into string printf("\n%s",s2.c原创 2020-12-03 16:22:33 · 125 阅读 · 0 评论 -
csp:碰撞的小球
#include <iostream> using namespace std;struct ball{ int index; int speed;};int main(){ int n,L,t; cin>>n>>L>>t; ball balls[n]; for(int i=0;i<n;i++){//input int a; cin>>a; balls[i].index=a; balls[i].speed=原创 2020-12-03 15:29:18 · 115 阅读 · 0 评论 -
算法题:csp回收站
#include <cstdio>//#include <iostream>//#include <string>//#include <vector>using namespace std;struct s_point{ int x; int y; bool isRecycle; int score;};int main(){ //input row1: waste number n row1+i: position positi..原创 2020-11-22 18:42:36 · 83 阅读 · 0 评论 -
算法巧解:csp稀疏向量:使用map(键值对)
1、事件起源于csp一算法题目稀疏向量2、然后我写出代码版本一这个代码很简单,就是简单模拟一下,使用两个数组,分别存储两个向量,最后再遍历一下就ok ,但是只有60分,因为该存储方式是将稀疏向量恢复为不稀疏的向量存储的,导致在测试最大的几个数据项的时候内存不够用#include <cstdio>using namespace std;int main(){ long long n; int u,v; scanf("%d%d%d",&n,&u,&v);原创 2020-11-23 12:10:22 · 282 阅读 · 0 评论 -
算法技巧:c++给布尔类型赋初值的重要性
1、问题背景在算法练习中,通过使用布尔值来进行判断,如codes1: if(p[j].x>=xl&&p[j].x<=xr&&p[j].y>=yd&&p[j].y<=yu){ //point is passby? p[j].isPassby = true; personPassby = true; }codes2:if(p[j].isPassby==true){ kcount++; i原创 2020-11-15 15:52:43 · 723 阅读 · 0 评论 -
算法技巧:巧用sort对结构体排序
1、应用场景:对结构体数组进行排序2、使用sort(需引入algorithm)中的自定义排序方法即为sort函数的第三个参数cmpsort(v.begin(),v.end(),cmp)3、sort的使用3.1 sort默认升序排序,降序的话将结果reverse(这是个函数)一下成为降序3.2 自定义比较函数 例如bool cmp1(int a,int b) //按降序排列 6 { 7 return a>b; 8 }4、具体实例称检测点查询来源:CCF标签:原创 2020-11-15 14:15:23 · 1768 阅读 · 1 评论 -
算法技巧:c++数字转string字符类型并用printf输出
1、利用sprintf将数字转到char数组中char buffer[256];int counter = 10;sprintf(buffer,"%d", counter);c++2、将char数组转成string对象string number = string(buffer);3、使用printf输出printf("%s", number.c_str());4、用处可以对数字进行一些操作,例如格式输入999,999,225#include <stdio.h>原创 2020-11-12 16:22:38 · 338 阅读 · 0 评论