• 个人简介

    同余定理✔

    >

    数论✔

    互质:两个数字的最大公因数为1时,称这两个数字互质 辗转相除法👇

    include <bits/stdc++.h>
    using namespace std;
    int gcd(int a, int b){
    	if(a < b) swap(a, b);
    	if(a%b==0) return b;
    	return gcd(b, a%b);
    } 
    int main(){
    	int a, b;
    	cin >> a >> b;
    	cout << gcd(a,b);
    	return 0;
    }
    lcm(a, b) = a*b/gcd(a, b)
    


    二分专场:😮 #B. 希蒙的飞碟游戏 题目描述 这项游戏将在一条笔直的轨道道中进行,轨道中分布着一些飞碟。希蒙已经选择好了两个飞碟作为比赛起点和终点。在起点和终点之间,有 N 个飞碟(不含起点和终点的飞碟)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的飞碟,直至到达终点。

    为了提高比赛难度,希蒙计划移走一些飞碟,使得选手们在比赛过程中的最短跳跃距离尽可能长。由于预算限制,组委会至多从起点和终点之间移走 M 个飞碟(不能移走起点和终点的飞碟)。

    输入格式 第一行包含三个整数 L,N,M,分别表示起点到终点的距离,起点和终点之间的飞碟数,以及组委会至多移走的飞碟数。保证

    接下来 N 行,每行一个整数,第 i 行的整数 表示第 i 块飞碟与起点的距离。这些飞碟按与起点距离从小到大的顺序给出,且不会有两个飞碟出现在同一个位置。

    输出格式 一个整数,即最短跳跃距离的最大值。

    样例 输入样例 25 5 2 2 11 14 17 21 输出样例 4 👇

    #include <bits/stdc++.h>
    using namespace std;
    long long a[50005];
    long long L,n,m;
    bool check(int mid){
    	int k=0,cnt=0;
    	for(int i=1;i<=n;i++){
    		if(a[i]-k<mid){
    			cnt++;
    		}else{
    		k=a[i]; 
    		} 
    	} 
    	return cnt<=m;
    }
    int main() {
    	cin>>L>>n>>m;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	} 
    	a[++n]=L;
    	int l=1,r=L,ans=0;
    	while(l<=r){
    		int mid = (l+r)/2;
    		if (check(mid)){
    				l=mid+1;
    				ans=mid;
    			}else{
    				r=mid-1;
    			}
    	}
    	cout<<ans;
    }
    
    

    #A. 希蒙的伐木机 题目描述 伐木工人希蒙需要砍倒M米长的木材。不过希蒙只被允许砍倒单行树木。

    希蒙的伐木机工作过程如下:先设置一个高度参数H(米),伐木机升起一个巨大的锯片到高度H,并锯掉所有的树比H高的部分(当然,树木不高于H米的部分保持不变)。 例如,如果一行树的高度分别为20,15,10和17,希蒙把锯片升到15米的高度,切割后树木剩下的高度将是15,15,10和15,

    而希蒙将从第1棵树得到5米,从第4棵树得到2米,共得到7米木材。

    希蒙非常关注生态保护,所以他不会砍掉过多的木材。

    这正是他为什么尽可能高地设定伐木机锯片的原因。

    帮助希蒙找到伐木机锯片的最大的整数高度H,使得他能得到木材至少为M米。

    换句话说,如果再升高1米,则他将得不到M米木材。

    输入格式 第1行:2个整数N和M,N表示树木的数量(1<=N<=1000000),

    M表示需要的木材总长度(1<=M<=2000000000)

    第2行:N个整数表示每棵树的高度,值均不超过1000000000。所有木材长度之和大于M,因此必有解。

    输出格式 第1行:1个整数,表示砍树的最高高度。

    样例 样例输入 5 20 4 42 40 26 46 样例输出 36 👇

    #include <bits/stdc++.h>
    using namespace std;
    long long a[1000005];
    long long n,m;
    int main() {
    	cin>>n>>m;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	} 
    	int l=0,r=1000000000,ans=0;
    	while(l<=r){
    		int mid=(l+r)/2;
    		long long s=0;
    		for(int i=1;i<=n;i++){
    			if(a[i]>mid){
    				s+=(a[i]-mid);
    			}	
    		}
    		if (s>=m){
    				l=mid+1;
    				ans=mid;
    			}else{
    				r=mid-1;
    			}
    	}
    	cout<<ans;
    }
    

    #D. 希蒙的木材厂 题目描述 希蒙的木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头(木头有可能有剩余),需要得到的小段的数目是给定的。

    当然,我们希望得到的小段木头越长越好,你的任务是计算能够得到的小段木头的最大长度。

    木头长度的单位是cm。原木的长度都是正整数,我们要求切割得到的小段木头的长度也是正整数。

    例如有两根原木长度分别为11和21,要求切割成到等长的6段,很明显能切割出来的小段木头长度最长为5.

    输入格式 第一行是两个正整数N和K(1 ≤ N ≤ 100000,1 ≤ K ≤ 100000000),N是原木的数目,K是需要得到的小段的数目。

    接下来的N行,每行有一个1到100000000之间的正整数,表示一根原木的长度。

    输出格式 能够切割得到的小段的最大长度。如果连1cm长的小段都切不出来,输出”0”。

    样例 样例输入 3 7 232 124 456 样例输出 114 👇

    #include <bits/stdc++.h>
    using namespace std;
    long long a[50005];
    long long n,m;
    bool check(int mid){
    	int k=0,cnt=0;
    	for(int i=1;i<=n;i++){
    		cnt+=(a[i]/mid);
    	} 
    	return cnt>=m;
    }
    int main() {
    	long long p = 0;
    	cin>>n>>m;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    		p = max(p,a[i]);
    	} 
    	int l=1,r=p,ans=-1,s;
    	while(l<=r){
    		int mid = (l+r)/2;
    		if (check(mid)){
    				l=mid+1;
    				ans=mid;
    			}else{
    				r=mid-1;
    			}
    	}
    	cout<<ans;
    }
    

    #A. 找数字 题目描述 现在有n个互不相同的数字,且这n个数字是以升序排列的,要求找出m个数字在这组数中的位置是多少?若没有找到,输出-1。

    输入格式 第一行为两个整数n和m

    第二行为n个升序排列的数字

    接下来m行,每行一个整数x,表示要查找的数字。

    输出格式 m行,每次查找的结果

    样例 样例输入 6 3 4 6 8 13 23 51 6 13 24 样例输出 2 4 -1 👇

    #include <iostream>
    using namespace std;
    int a[100005]; 
    int main() {
    	int n,m;
    	cin>>n>>m;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	}
    	while(m--){
    		int x;
    		cin>>x;
    		int l=1,r=n,ans=-1;
    		while(l<=r){
    			int mid=(l+r)/2;
    			if(a[mid]>x)r=mid-1;
    			if(a[mid]<x)l=mid+1;
    			if(a[mid]==x){
    				ans=mid;
    				break;
    			}
    		}
    		cout<<ans<<endl;
    	}
    

    #B. 希蒙搭积木1 题目描述 希蒙在要完成一个庞大的工作,那就是用积木搭出来一个赛码城堡,他需要用到特别特别多的零件,为了方便查找,希蒙把所有的零件按照一条线的形式放好,由n个不超过 1 0 9 10 9 的单调不减的(就是后面的数字不小于前面的数字)非负整数 a 1 , a 2 , … , a n a 1 ​ ,a 2 ​ ,…,a n ​ 的数字组成,注意,可能会用到多个同样的零件,然后进行 次查找。对于每次查找,给出一个整数 要求输出这个零件在序列中第一次出现的位置,如果没有找到的话输出 -1 。 输入格式 第一行 2 个整数 n 和 m,表示零件个数和查找次数。

    第二行 n 个整数,表示这些待查询的零件。

    第三行 m 个整数,表示询问这些零件的编号,从 1 开始编号。

    输出格式 m 个整数表示答案。

    样例 输入样例1 11 3 1 3 3 3 5 7 9 11 13 15 15 1 3 6 输出样例1 1 2 -1 👇

    #include <iostream>
    using namespace std;
    int a[1000005]; 
    int main() {
    	int n,m;
    	cin>>n>>m;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	}
    	while(m--){
    		int x;
    		cin>>x;
    		int l=1,r=n,ans=-1;
    		while(l<=r){
    			int mid=(l+r)/2;
    			if(a[mid]>x)r=mid-1;
    			if(a[mid]<x)l=mid+1;
    			if(a[mid]==x){
    				ans=mid;
    				r=mid-1;
    			}
    		}
    		cout<<ans<<" ";
    	}
    	
    }
    
    

    #C. 大理石在哪儿 题目描述 现有 n n 个大理石,每个大理石上写了一个非负整数。首先把各数从小到大排序,然后回答 Q Q 个问题。每个问题问是否有一个大理石写着某个整数 x x,如果是,还要回答是哪个大理石上写着 x x(如果有多个大理石同时写着此数字,回答第一个的位置)。排序后的大理石从左到右编号为 1.. n 1..n。

    输入格式 第一行 n n, m m 两个数。

    接下来的一行有 n n 个整数,表示 x [ 1 ] , … , x [ n ] x[1],…,x[n]。

    接下来 m m 行, m m 个提问。

    输出格式 输出 x x 在 A A 中的第几个位置"x found at ans"或 输出"x not found".

    样例 #1 样例输入 #1 5 2 1 3 3 3 1 2 3 样例输出 #1 2 not found 3 found at 3 👇

    #include <bits/stdc++.h>
    using namespace std;
    int a[1000005]; 
    int main() {
    	int n,m;
    	cin>>n>>m;
    	for(int i=1;i<=n;i++){
    		cin>>a[i];
    	}
    	sort(a+1,a+n+1);
    	while(m--){
    		int x;
    		cin>>x;
    		int l=1,r=n,ans=-1;
    		while(l<=r){
    			int mid=(l+r)/2;
    			if(a[mid]>x)r=mid-1;
    			if(a[mid]<x)l=mid+1;
    			if(a[mid]==x){
    				ans=mid;
    				r=mid-1;
    			}
    		}
    		if(ans==-1){
    			cout<<x<<" not found"<<endl;
    		}else{
    			cout<<x<<" found at "<<ans<<endl;
    		}
    	}
    	
    }
    

    第五加我🌼 name:sher迷迭香(开头小写不行大写)

    叫!!!!!!!

    来自我渔!!!!!

    啊啊啊!我推渔渔🐟,第五人格, 启动!!!! -------------------🌸-----


    摸鱼人的小仓库 http://www.staggeringbeauty.com/ 大虫子 https://www.ak-ioi.com/apps/oi-2048/ 华容道 chrome://dino/ 小恐龙 https://littlealchemy2.com/ 小小炼金师 https://2048game.com/ 数字组 https://dimit.me/Fe26/index_zh_CN.html 死铁 http://www.4399.com/ 4399 https://www.mazegenerator.net/ 迷宫 https://lewan.baidu.com/rankland?idfrom=5056&gameSource=mini&gameType=0 百度游戏 [https://deepmess.com/namerena/]名字竞技场 ev.io 枪战游戏https://www.crazygames.com/game/air-wars-2 飞机 https://www.crazygames.com/game/kirka-io 枪战 https://www.crazygames.com/game/ev-io 枪战 CrazyGames - Free Online Games on CrazyGames.com https://student-vip.xiaomawang.com/ forr.io电子木鱼: 你说得对,但《第五人格》是由网易开发的非对称性对抗竞技类(Asymmetrical Battle Arena)游戏,游戏于2018年4月2日开启限号测试4月12日开启全平台公测。该游戏适龄级别为16+。

    玩家将扮演侦探 奥尔菲斯,在收到一封神秘的委托信后,进入恶名昭著的庄园调查一件失踪案。在进行证据调查过程中,玩家扮演的奥尔菲斯将采用演绎法,对案情进行回顾。在案情回顾时,玩家可以选择扮演监管者或求生者,展开激烈的对抗。而在调查的过程,无限接近事实时,却发现越来越不可思议的真相

    20世纪欧洲,有一对年轻的艺术家夫妇在某偏远的山区以低廉的价格买下了一座占地面积巨大的庄园。因为历代主人有不祥传闻,这座庄园的名声很差。但是这对夫妻对迷信和流言置若罔闻。玩家扮演的主角便是这对夫妇的孩子。

    24年前,主角迎来了12岁生日,但就在这一天双亲被匪徒残忍杀害了,主角精神受到了极大的冲击,精神恍惚,变得自闭。在他人的欺诈下,庄园被变卖而主角则被送进精神病院。庄园虽几经转手,但恶名依旧,不久便被荒废。

    13年前,新兴犯罪推理小说家——奥尔菲斯开始在文学界崭露头角。同年,庄园被一位青年收购,在重金打造下庄园恢复了生机,但仍有很多地方被闲置(例如林场、猎场、教堂等区域)。就在大家认为庄园会在这位青年手下日益好转,但诡异的是事情发生了,人们察觉到这里的人员缺口像填不满似的,从未停止人员招募。社会上诸多的人口失踪案最后也都指向了这个地方。但警方的数次调查都一无所获。

    10年前,一场大火烧了庄园大半区域。人们发现火灾中的遇难者死因和火灾没有任何关系,仅有少数几个幸存者昏迷在地,他们躺在地上的位置是经过特殊布置的,似乎在举办某种神秘的仪式,而小说家奥尔菲斯也在幸存者中。但奇怪的是,所有幸存者醒来后发现自己完全忘记了为什么来这个庄园,以及在这里发生过什么。幸存者等人的遭遇被定性为某种仪式的牺牲者,但其余人员的死因则始终无法得到合理解释。随后庄园被关闭,从此这个地方再无人敢问津甚至靠近这片区域,人们称之为“恶名昭著的庄园”。

    主角——奥尔菲斯昏迷了整整一年,醒来时完全忘记了自己是谁。作为作家他已经写不出好的小说了,不久,这个曾名动一时的名字再也没有出现于公众视野中。

    7年前,奥尔菲斯开了所私人侦探事务。1月前,某富商年幼的女儿离奇失踪,种种迹象都指向了“恶名昭著的庄园”,富商需要人帮他调查出真相。2天前,主角收到了富商的委托函,邀请主角协助帮忙调查。细看委托函上的收件人,是一个他自己的都已经遗忘的名字——(玩家输入姓名)。1天前,主角寄出了回执函,决定前去调查。次日,主角直接来到荒废已久的庄园主屋开始了调查……

    求生者

    除基础角色,其余求生者角色需要用线索兑换或付费购买解锁(在精华中抽到部分限定皮肤也可直接获得该角色)。进入游戏时玩家可以自行选择扮演,直到一轮游戏结束,方可更换角色。每局对抗开始后,4位求生者会在场景中随机位置出生。求生者需要寻找密码机进行破译,场景中总计存在7台密码机,玩家需要破译完成5台,随后才能打开电闸,并且至少3位求生者成功逃脱方可获胜。


    除基础角色,其余监管者角色需要用线索兑换或付费购买解锁(在精华中抽到部分限定皮肤也可直接获得该角色)。进入游戏时玩家可以自行选择,在准备过程中可选择特殊技能,直到一轮游戏结束,方可更换角色。监管者淘汰(绑上狂欢之椅或放血至少3名求生者,方可获胜。

  • 通过的题目

  • 最近活动

    This person is lazy and didn't join any contests or homework.

题目标签

初窥门径
3
顺序结构
3
GESP二级
1