
笔记
文章平均质量分 65
阿尔法豆
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
二分模板
找大于等于给定数的第一个位置 (满足某个条件的第一个数) 找小于等于给定数的最后一个数 (满足某个条件的最后一个数) / 判断条件很复杂时用check函数,否则if后直接写条件即可 bool check(int mid) { … return …; } 二分模板说明 循环必须是l < r if判断条件看是不是不满足条件, 然后修改上下界 若是r = mid - 1, 则前面mid 语句要加1(记住与r平衡就行) 出循环一定是l == r,所以l和r用哪个都可以 有的时候如果是单调的,l = mid原创 2021-01-17 22:46:15 · 165 阅读 · 0 评论 -
帅的STL学习笔记
关于 STL(标准模板库) Standard Template Library,缩写:STL STL 是 个 一C++ 软件库, 包含算法(里面algorithms)、容 器(containers)、函数(functions)、迭代器(iterators) 字符串(string) 创建string类型变量string s; 直接创建一个空的(大小为0)的string类型变量s string s=*char; 创建string时直接用字符串内容对其赋值,注意字符串要用双引号"" strings(intn,c原创 2021-01-22 13:13:09 · 235 阅读 · 1 评论 -
查重 排序
查重 排序 输入格式 输入有两行,第1行为1个正整数,表示所生成的随机数的个数N 第2行有N个用空格隔开的正整数,为所产生的随机数。 输出格式 输出也是两行,第1行为1个正整数M,表示不相同的随机数的个数。 第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。 set,顾名思义,就是数学上的集合——每个元素最多只出现一次,并且set中的元素已经从小到大排好序。 头文件:#include < set > //用bits的童鞋请忽略 常用操作 : **begin() 返回set容原创 2020-11-03 01:29:58 · 468 阅读 · 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 · 231 阅读 · 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 · 175 阅读 · 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 · 243 阅读 · 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 · 313 阅读 · 0 评论 -
买铅笔
#include<bits/stdc++.h> #include<stdio.h> #include using 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 · 233 阅读 · 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 · 598 阅读 · 0 评论 -
数字反转
#include<stdio.h> int main() { int n; scanf("%d",&n); if(n<0) { n=-n; printf("-"); } while(n%100){ n=n/10; }去掉低位所有0,要用循环while int 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 · 447 阅读 · 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 · 284 阅读 · 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 · 103 阅读 · 0 评论