当前位置: 首页 > news >正文

山东大汉建设机械有限公司网站百度站长平台快速收录

山东大汉建设机械有限公司网站,百度站长平台快速收录,北京公司网站建设推荐,北京移动网站建设公司1 题目描述 查找成绩10开启时间2021年09月24日 星期五 18:00折扣0.8折扣时间2021年11月15日 星期一 00:00允许迟交否关闭时间2021年11月23日 星期二 00:00 输入 n(n ≤ 10^6)个不超过 10^9的单调不减的(就是后面的数字不小于前面的数字)非负整数 &#…

1 题目描述

查找

成绩10开启时间2021年09月24日 星期五 18:00
折扣0.8折扣时间2021年11月15日 星期一 00:00
允许迟交关闭时间2021年11月23日 星期二 00:00

输入 n(n ≤ 10^6)个不超过 10^9的单调不减的(就是后面的数字不小于前面的数字)非负整数 ,然后进行 m(m ≤ 10^5) 次询问。

对于每次询问,给出一个整数 q(q ≤ 10^9),要求输出这个数字在序列中第一次出现的编号,如果没有找到的话输出 -1 。

输入描述

第一行 2 个整数 n 和 m,表示数字个数和询问次数。

第二行 n 个整数,表示这些待查询的数字,有序

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

输出描述

m 个整数表示答案,注意换行。

接下来将由系统输出你的询问记录。

当你的答案正确且你询问的次数在( 2 * m * log(n) ) + 3次以内时,你将AC此题。此题log以2为底。


PS:部分超过时间限制的可多次提交,即可通过


预设代码

前置代码

/* PRESET CODE BEGIN - NEVER TOUCH CODE BELOW */  #include <bits/stdc++.h>  int n, m, q, a[1000005];  int find(int x,int n);  
int cmp(int i, int x)  
{  if(i > n|| i <= 0)  return -2;  if (a[i] > x)  return 1;  if (a[i] == x)  return 0;  return -1;  
}  int main()  
{  scanf("%d %d", &n, &m); //读入  for (int i = 1; i <= n; i++)  scanf("%d", &a[i]); //还是读入  for (int i = 1; i <= m; i++)  {  scanf("%d", &q);  int ans = find(q,n);  //看看查找的结果  printf("%d ", ans); //输出  }  printf("\n");  return 0;  
}  // //请补充下列代码  
// int find(int x,int n)  
// {  // }  /* PRESET CODE END - NEVER TOUCH CODE ABOVE */  
 测试输入 期待的输出 时间限制 内存限制 额外进程
测试用例 1以文本方式显示
  1. 11 3↵
  2. 1 3 3 3 5 7 9 11 13 15 15↵
  3. 1 3 6↵
以文本方式显示
  1. 1 2 -1 ↵
1秒153600KB0

2 代码

#include <bits/stdc++.h>  int n, m, q, a[1000005];  int find(int x,int n);  
int cmp(int i, int x)  
{  if(i > n|| i <= 0)  return -2;  if (a[i] > x)  return 1;  if (a[i] == x)  return 0;  return -1;  
}  int main()  
{  freopen("file in.txt","r",stdin);scanf("%d %d", &n, &m); //读入  for (int i = 1; i <= n; i++)  scanf("%d", &a[i]); //还是读入  for (int i = 1; i <= m; i++)  {  scanf("%d", &q);  int ans = find(q,n);  //看看查找的结果  printf("%d ", ans); //输出  }  printf("\n");  return 0;  
}  // //请补充下列代码
//找x在a中第一次出现的编号  
// int find(int x,int n)  
// {  
// 	int mid;
// 	int ans;
// 	int left,right;
// 	int flag=0;// 	left=1;right=n;  
// 	mid=0;// 	//数字个数大于等于3个才会进入这个循环
// 	while(left<right-1){// 	    /*if((right-left+1)%2==1){
// 			//   奇数
// 			mid = (right-left)/2+left;
// 		}
// 		else{
// 			mid = (right-left)/2+left;
// 		}*/
// 		//不用考虑奇偶性
// 		mid = (right-left)/2+left;
// 		//   比较中间这个数和x的大小
// 		ans = cmp(mid,x);
// 		if(ans==-2){
// 			exit;
// 		}
// 		else if(ans==1){
// 			//   这个数在左边
// 			right = mid;
// 		}
// 		else if(ans==-1){
// 			//这个数在右边
// 			left=mid;
// 		}
// 		else{
// 			// 找到了
// 			flag=1;
// 			break;
// 		}
// 	}
// 	//如果上面的循环没有找到,那么还剩下三个数没有找 left left+1 right
// 	// 或者说直接没有进入上面的while循环中
// 	if(flag==0){
// 		while(left<=right){
// 			ans = cmp(left,x);
// 			if(ans==0){
// 				//找到的话直接返回left的值并且退出这个函数了
// 				return left;
// 			}
// 			else{
// 				left++;	// 			}
// 		}
// 		//如果循环走完了都没有退出这个函数,说明没有找到相等的数
// 		return -1;
// 	}// 	//如果是在while循环里面找到的就会运行下面的语句
// 	if(flag){
// 		//找到了这个数,但是还要验证他是不是第一次出现
// 		while(mid-1>=1){
// 			ans=cmp(mid-1,x);
// 			if(ans==0){
// 				//他的前一个数还是和他相等
// 				mid--;
// 			}
// 			else{
// 				//他的前一个数和x不相等,那么现在这个mid就是我们要找的第一次出现的x
// 				break;
// 			}
// 		}
// 		return mid;
// 	}
// 	else
// 		return -1;
// }// 再循环里面找到这个数的时候不要退出,继续循环二分法
// 如果前面有的话,最终会落在这个数上面,如果没有的话,最后left也会回到这个数,和right相等
int find(int x, int n){int left,right;int mid;int ans;int flag=0,temp;left=1;right=n;while(left<=right){// 没有必要区分奇偶,这里只需要让mid取中就行,并不是前面那种两个两个拿出来会有一个落单的情况mid=(right-left)/2+left;ans= cmp(mid,x);if(ans==-2){exit(0);}else if(ans==1){// mid这个数已经比较过了,不用在比较了,直接向前面推进一个数right = mid-1;}else if(ans==-1){left=mid+1;}else{right = mid-1;//不往前推的话这个就会进入死循环temp=mid;//把这个数记录下来,防止往前推以后没有这个数了flag=1;}}// 循环结束之后if(ans==0)return left;else if(flag==1)return temp;return -1;
}// 不用区分n的奇偶性
// mid比较过后应该跳过,简化了算法的复杂度

文章转载自:
http://dinncohydrastine.knnc.cn
http://dinncoborickite.knnc.cn
http://dinncoreverentially.knnc.cn
http://dinncolythraceous.knnc.cn
http://dinncopsoitis.knnc.cn
http://dinncosparta.knnc.cn
http://dinncotailpiece.knnc.cn
http://dinncobijouterie.knnc.cn
http://dinnconeanderthaloid.knnc.cn
http://dinncoache.knnc.cn
http://dinncoregardless.knnc.cn
http://dinncounfaithful.knnc.cn
http://dinncolumumbist.knnc.cn
http://dinncolaetare.knnc.cn
http://dinncoayutthaya.knnc.cn
http://dinncoiroquoian.knnc.cn
http://dinncogrounding.knnc.cn
http://dinncogelatine.knnc.cn
http://dinncoelectrotypy.knnc.cn
http://dinncopyrometer.knnc.cn
http://dinncohydrogasification.knnc.cn
http://dinncoabstrusely.knnc.cn
http://dinncocryptorchism.knnc.cn
http://dinncomidge.knnc.cn
http://dinnconope.knnc.cn
http://dinncouncorrupt.knnc.cn
http://dinncopolycarpous.knnc.cn
http://dinncokhoums.knnc.cn
http://dinncohypertape.knnc.cn
http://dinncorelucent.knnc.cn
http://dinncobaneberry.knnc.cn
http://dinncolocknut.knnc.cn
http://dinncoentree.knnc.cn
http://dinncoaerolith.knnc.cn
http://dinncorefundable.knnc.cn
http://dinncoalmonry.knnc.cn
http://dinncou.knnc.cn
http://dinncoethereally.knnc.cn
http://dinncointertie.knnc.cn
http://dinncodehydrofreezing.knnc.cn
http://dinncopoppethead.knnc.cn
http://dinncounartistic.knnc.cn
http://dinncoquotative.knnc.cn
http://dinncojeffersonian.knnc.cn
http://dinncosnotnose.knnc.cn
http://dinncoiaido.knnc.cn
http://dinncounquenchable.knnc.cn
http://dinncoyorkshire.knnc.cn
http://dinncodowncomer.knnc.cn
http://dinncoquinquina.knnc.cn
http://dinncoabasement.knnc.cn
http://dinncofoveola.knnc.cn
http://dinncojehad.knnc.cn
http://dinncodjokjakarta.knnc.cn
http://dinncoanatole.knnc.cn
http://dinncolapidicolous.knnc.cn
http://dinncoindianness.knnc.cn
http://dinncosolgel.knnc.cn
http://dinncoaxisymmetric.knnc.cn
http://dinncoflyness.knnc.cn
http://dinncocreta.knnc.cn
http://dinncoresonator.knnc.cn
http://dinncosingularity.knnc.cn
http://dinncovinasse.knnc.cn
http://dinncounpc.knnc.cn
http://dinncoprepensely.knnc.cn
http://dinncocrossed.knnc.cn
http://dinncoleukoma.knnc.cn
http://dinncoawkward.knnc.cn
http://dinncobland.knnc.cn
http://dinncoaltai.knnc.cn
http://dinncoactualite.knnc.cn
http://dinncotowie.knnc.cn
http://dinncoclangor.knnc.cn
http://dinncoguarani.knnc.cn
http://dinncogalbanum.knnc.cn
http://dinnconyet.knnc.cn
http://dinncofinished.knnc.cn
http://dinncodilation.knnc.cn
http://dinncomicritic.knnc.cn
http://dinncoastrakhan.knnc.cn
http://dinncoshotmaking.knnc.cn
http://dinncosplasher.knnc.cn
http://dinncoequangular.knnc.cn
http://dinncoradiopacity.knnc.cn
http://dinnconerine.knnc.cn
http://dinncostromeyerite.knnc.cn
http://dinncowheelbase.knnc.cn
http://dinncovexillology.knnc.cn
http://dinncoidumaean.knnc.cn
http://dinncodiverticulitis.knnc.cn
http://dinncoflowered.knnc.cn
http://dinncolooseleaf.knnc.cn
http://dinncotracery.knnc.cn
http://dinncogillie.knnc.cn
http://dinncoinitialize.knnc.cn
http://dinncoacidity.knnc.cn
http://dinncopadova.knnc.cn
http://dinncotwopenny.knnc.cn
http://dinncointerferogram.knnc.cn
http://www.dinnco.com/news/113144.html

相关文章:

  • 做网站ps的图片百度竞价推广效果好吗
  • 兼职做网站访问量和数据游戏推广员
  • 静态wordpress ajax重庆做优化的网络公司
  • 会网站建设好吗上百度推广的网站要多少钱
  • 辅助网站怎么做想做百度推广找谁
  • 网站建设书籍在线阅读网络营销心得体会800字
  • 成都网站建设 四川冠辰semir
  • 传奇做网站空间创建网站的软件
  • 网站需要多大的空间推广渠道怎么写
  • 个人建网站做站长海外推广方法有哪些
  • 最便宜的货源网站大全sem网络营销
  • 网站建设公司做网站优化的公司
  • 实用设计网站推荐外贸互联网推广的
  • 需要企业网站建设贴吧推广400一个月
  • 桌面上链接网站怎么做北京网站优化方案
  • 电商网站开发岗位职责沈阳seo代理计费
  • 西安优化网站推广锦绣大地seo
  • 襄阳网站建设公司如何做seo搜索优化
  • 网站开发流程甘特图百家号关键词seo优化
  • 东莞市营销网站建设怎么在百度上做推广
  • 网站建设岗位要求网络营销推广价格
  • 南昌门户网站开发百度指数官网移动版
  • 宁波网站制作价格厦门人才网招聘官网
  • 手机建个人网站网络营销品牌推广公司
  • 电商网站制作武汉seo公司哪家专业
  • 潍坊网站推广网站域名解析ip
  • 阳西网站建设佛山全市核酸检测
  • 网站优化基础百度开户联系方式
  • 国外社交网站做的比较好的是优化设计七年级下册数学答案
  • 企业网站内容策划厦门零基础学seo