笔记
xwQnQ
这个作者很懒,什么都没留下…
展开
-
理解结构体的用处(偏难一些的结构体排序)11.26
小蒜给出了班里某门课程的成绩单,请你按成绩从高到低对成绩单排序输出,如果有相同分数则名字字典序小的在前。输入格式第一行为n(0 < n < 20)n(0<n<20),表示班里的学生数目;接下来的nn行,每行为每个学生的名字和他的成绩, 中间用单个空格隔开。名字只包含字母且长度不超过2020,成绩为一个不大于100100的非负整数。输出格式把成绩单按分数从高到低的顺序进行排序并输出,每行包含名字和分数两项,之间有一个空格。Sample ...原创 2021-11-26 19:19:35 · 111 阅读 · 0 评论 -
H - 二分思想(稍简单)
蒜头君手上有个长度为 nn 的数组 A。由于数组实在太大了,所以蒜头君也不知道数组里面有什么数字,所以蒜头君会经常询问在数组 A中,大于等于 x的最小值是多大?输入格式第一行输入两个整数 n 和 m,分别表示数组的长度和查询的次数。接下来一行有 n 个整数 ai。接下来 m 行,每行有 1 个整数 x,表示蒜头君询问的整数。输出格式对于每次查询,如果可以找到,输出这个整数。否则输出 -1。数据范围1≤n,m≤10^5,0≤x≤10^6。Sample I...原创 2021-11-25 22:06:40 · 714 阅读 · 0 评论 -
11.21笔记之二分法+时间复杂度
蒜头君手上有个长度为 n 的数组 A。由于数组实在太大了,所以蒜头君也不知道数组里面有什么数字,所以蒜头君会经常询问整数 x 是否在数组 A 中。输入格式第一行输入两个整数 n 和 m,分别表示数组的长度和查询的次数。接下来一行有 n 个整数 ai。接下来 m 行,每行有 1 个整数 x,表示蒜头君询问的整数。输出格式对于每次查询,如果可以找到,输出"YES",否则输出"NO"。数据范围1≤n,m≤105,0≤x≤106。Sample Input10 51 1原创 2021-11-21 22:13:12 · 231 阅读 · 0 评论 -
11.20笔记之约瑟夫环之C语言
传说约瑟夫当年活下来就是靠快速计算这个问题。n个人围成一圈,编号依次为1,2,3...n。 从第一个人开始报数,数到m的人出列,再由下一个人重新从11开始报数,数到m的人再出圈。 以此类推,直到所有的人都出列。 请输出依次出圈人的编号。输入格式两个整数n,m 1 =n,m <= 100。输出格式n个用空格分隔的整数,表示出圈人的编号。示例输入6 4样品输出4 2 1 3 6 5解题思路1.定义数组a[1,2,.....n...原创 2021-11-20 20:31:34 · 139 阅读 · 0 评论 -
E - 简单排序(11.18笔记)
蒜术师给了你一个1010个整数的序列,要求对其重新排序。排序要求: 奇数在前,偶数在后; 奇数按从大到小排序; 偶数按从小到大排序。 输入格式输入一行,包含1010个整数,彼此以一个空格分开,每个整数的范围是大于等于00,小于等于100100。输出格式按照要求排序后输出一行,包含排序后的1010个整数,数与数之间以一个空格分开。Sample Input4 7 3 13 11 12 0 47 34 98Sample Output...原创 2021-11-18 20:15:12 · 138 阅读 · 0 评论 -
暴力(稍简单)2021年11月17日笔记之华强买鸡
百钱买百鸡问题:公鸡五文钱一只,母鸡三文钱一只,小鸡三只一文钱,用100100文钱买100100只鸡,公鸡、母鸡、小鸡各买多少只?本程序要求解的问题是:给定一个正整数nn,用nn文钱买nn只鸡,问公鸡、母鸡、小鸡各买多少只?输入格式输入一个正整数nn。输出格式如果有解,依次输出公鸡、母鸡、小鸡的个数(用正整数表示)。如果无解,输出"No Answer."。数据范围1 \le n \le 2001≤n≤200。Sample Input...原创 2021-11-17 17:07:20 · 93 阅读 · 3 评论 -
二进制换十进制(简单)11.16笔记
把一个二进制数转化为十进制数。输入格式第一行一个正整数n\ (1\le n\le 30)n(1≤n≤30),表示二进制数的长度。第二行一个二进制数。输出格式输出一个整数,表示对应的十进制数。Sample Input510101Sample Output21方法一解题思路1.运用位数做循环2.利用字符串得出相应位数的数字(1或者0)3.利用pow()函数的到各个位数的十进制值并相加#inc..原创 2021-11-16 21:18:06 · 312 阅读 · 0 评论 -
11.15笔记(世間で一番のノートです)
11.15一.解题思路1.各个月份天数2.判断是否为闰年(如果为闰年则总天数+1)#include<stdio.h>int main(){ int n,y,r,sum=0; scanf("%d %d %d",&n,&y,&r); if(y==1){ sum=r; }else if(y==2){ sum=31+r; }else if(y==3){ sum=r+28+31;...原创 2021-11-15 22:27:15 · 396 阅读 · 0 评论 -
2021-11-09
排序1冒泡双循环2快速排序从数列中挑出一个元素,称为 “基准”(pivot);重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作;递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序;void quickSort(int left, int right, vector& arr){ if(left >=原创 2021-11-09 23:13:12 · 52 阅读 · 0 评论