【C++】 练习题4+学习

算法组-范宣 2024-02-01 21:19:34

二分法

#include <iostream>
using namespace std;
int main(){
	int q[100010],n,m;
	scanf("%d %d",&n,&m);
	for(int i=0;i<n;i++) scanf("%d",&q[i]);

	while(m--){
		int x;
		scanf("%d",&x);

		int l=0,r=n-1;
		while(l<r){
			int mid = (l+ r)/2;
			if(q[mid]>=x) r=mid;
			else l=mid+1;}
		if(q[l]!=x) cout << "-1 -1"<<endl;
		else {
			cout<<l<<' ';

			int l=0,r=n-1;
			while(l<r){
				int mid=(l+r+1)/2;
				if(q[mid]<=x) l=mid;
				else r=mid-1;}
            cout<<l<<endl;}
}
	return 0;}

F题

 

格式化输入输出。

用秒计算方便。 

#include <stdio.h>
#include <iostream>

using namespace std;

int main(){
    int n;
	cin>>n;
	for(int i=0;i<n;i++){
		int T=0;
		for(int j=0;j<2;j++){
			int a,b,c,t;
			scanf("%d:%d:%d ",&a,&b,&c);
			int miao_gb=a*3600+b*60+c;
			scanf("%d:%d:%d",&a,&b,&c);
			miao_gb=a*3600+b*60+c-miao_gb;
			if(getchar()==' '){
				scanf("(+%d)",&t);
				miao_gb+=3600*24*t;}
			T+=miao_gb;
		}
		printf("%02d:%02d:%02d\n",T/2/3600,T/2%3600/60,T/2%60);
	}
	return 0;
}

 

...全文
35 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

记得刷pat的题喔

342

社区成员

发帖
与我相关
我的任务
社区描述
一个供Leaders学习交流的地方
c++javapython 技术论坛(原bbs) 广东省·深圳市
社区管理员
  • 叫我胡萝北
  • CheungZzzc
  • szu_gexu
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧