![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 65
阿尔法豆
这个作者很懒,什么都没留下…
展开
-
二分模板
找大于等于给定数的第一个位置 (满足某个条件的第一个数)找小于等于给定数的最后一个数 (满足某个条件的最后一个数)/ 判断条件很复杂时用check函数,否则if后直接写条件即可bool check(int mid) {…return …;}二分模板说明循环必须是l < rif判断条件看是不是不满足条件, 然后修改上下界若是r = mid - 1, 则前面mid 语句要加1(记住与r平衡就行)出循环一定是l == r,所以l和r用哪个都可以有的时候如果是单调的,l = mid原创 2021-01-17 22:46:15 · 126 阅读 · 0 评论 -
帅的STL学习笔记
关于 STL(标准模板库)Standard Template Library,缩写:STLSTL 是 个 一C++ 软件库, 包含算法(里面algorithms)、容 器(containers)、函数(functions)、迭代器(iterators)字符串(string)创建string类型变量string s;直接创建一个空的(大小为0)的string类型变量sstring s=*char; 创建string时直接用字符串内容对其赋值,注意字符串要用双引号""strings(intn,c原创 2021-01-22 13:13:09 · 150 阅读 · 1 评论 -
查重 排序
查重 排序输入格式输入有两行,第1行为1个正整数,表示所生成的随机数的个数N第2行有N个用空格隔开的正整数,为所产生的随机数。输出格式输出也是两行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。set,顾名思义,就是数学上的集合——每个元素最多只出现一次,并且set中的元素已经从小到大排好序。头文件:#include < set > //用bits的童鞋请忽略常用操作 :**begin() 返回set容原创 2020-11-03 01:29:58 · 387 阅读 · 0 评论 -
训练赛-蚂蚁
n只蚂蚁以每秒1cm的速度在长为Lcm的竿子上爬行。当蚂蚁爬到竿子的端点时就会掉落。由于竿子太细,两只蚂蚁相遇时,它们不能交错通过,只能各自反向爬回去。对于每只蚂蚁,我们知道它距离竿子左端的距离xi,但不知道它当前的朝向。请计算各种情况当中,所有蚂蚁落下竿子所需的最短时间和最长时间。#include #include #include using namespace std;int n,l,mxans,mians,i,a;int main(){scanf("%d%d",&n,&原创 2020-10-18 01:08:06 · 172 阅读 · 0 评论 -
并查集例题
一共有n个数,编号是1~n,最开始每个数各自在一个集合中。现在要进行m个操作,操作共有两种:“M a b”,将编号为a和b的两个数所在的集合合并,如果两个数已经在同一个集合中,则忽略这个操作;“Q a b”,询问编号为a和b的两个数是否在同一个集合中;输入格式第一行输入整数n和m。接下来m行,每行包含一个操作指令,指令为“M a b”或“Q a b”中的一种。输出格式对于每个询问指令”Q a b”,都要输出一个结果,如果a和b在同一集合内,则输出“Yes”,否则输出“No”。每个结果占一行原创 2020-10-12 01:37:41 · 122 阅读 · 0 评论 -
K图形
多组输入,一个整数(2~20)针对每行输入,输出用“”组成的K形,每个“”后面有一个空格。例如输入2#include <stdio.h>#include using namespace std;int main(){int a,i,j,k,l;while(~scanf("%d",&a)){for(i=0;i<a+1;i++){for(j=i;j<a+1;j++){printf("* “);}for(k=i;k>原创 2020-10-10 02:09:23 · 205 阅读 · 0 评论 -
小鱼的数字游戏
项目场景:洛谷p1427问题描述:一行内输入一串整数,以 0 结束,以空格间隔。一行内倒着输出这一串整数,以空格间隔。原因分析:解决方案:#include<stdio.h>int c;int main(){int a[100];int i;for(i=0;;i++){scanf("%d",&a[i]);if(a[i]==0)break;c=i;}int ans;for(ans=c;ans>=0;ans–)printf("%d ",a[an原创 2020-10-05 21:12:58 · 280 阅读 · 0 评论 -
买铅笔
#include<bits/stdc++.h>#include<stdio.h>#includeusing namespace std;int ans=1e7;int main(){int n; int a,b,c;scanf("%d",&n);for(int i=0;i<3;i++){ scanf("%d%d",&a,&b); c=n/a; if(n%a!=0) c++; ans=min(ans,c*b);}p原创 2020-10-03 00:46:11 · 181 阅读 · 0 评论 -
陶陶摘苹果
#include<stdio.h>int main(){int a[10];for(int i=1;i<=10;i++) scanf("%d",&a[i]); int h; scanf("%d",&h); int ans=0; for(int i=1;i<=10;i++){ if(h+30>=a[i]) ans++; }printf("%d",ans); return 0;}原创 2020-10-02 01:44:03 · 529 阅读 · 0 评论 -
数字反转
#include<stdio.h>int main(){int n;scanf("%d",&n);if(n<0){n=-n;printf("-");}while(n%100){n=n/10;}去掉低位所有0,要用循环whileint sum=0;if(n0){sum=0;}while(n!=0)可以写成while(n),表示n不为0时执行{int k=n%10;sum=sum*10+k;n=n/10;}printf("%d",sum);原创 2020-10-02 01:18:05 · 399 阅读 · 0 评论 -
计数问题
#include<stdio.h>int main(){int b,n,x;scanf("%d%d",&n,&x);for(int i=1;i<=n;i++){int d=i;while(d!=0){int c=d%10;d=d/10;if(c==x){b++;}}}printf("%d",b);return 0; }原创 2020-10-02 01:16:35 · 253 阅读 · 0 评论 -
金字塔
#include <stdio.h>int main(){int i, j, k,n;scanf("%d", &n);for (i=0; i<n;i++){for (j=0;j<=n-i;j++)printf(" “);for (k=0;k<2i+1;k++)printf("”);printf("\n");}return 0;}原创 2020-10-01 12:21:15 · 77 阅读 · 0 评论