1. 首页
  2. 公告
  1. 登录
  2. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文

2022tysc1162

UID: 9281, 注册于 2022-6-20 17:20:58, 最后登录于 2024-6-1 22:43:36, 目前离线.

解决了 278 道题目,RP: 230.22 (No. 597)

♀
  • 个人简介

    mspaint 9448 11360 11690

    题目传送门

    #include<bits/stdc++.h>
    using namespace std;
    int n,m,c,a[1000001],b[1000001];
    bool check(int x)
    {
    	int sum=0;
    	bool bb=true;//判断是否有子弹 
    	for(int i=1;i<=n;i++)//初始化 
    	{
    		b[i]=a[i];
    	}
    	for(int i=1;i<=n;i++)
    	{
    		b[i]-=sum;//敌人减去之前所用的时间,因为一秒等于一米 
    		if(bb==false)//如果没子弹
    		{
    			//bb=true   我也不知道为什么不能加,加的话80分 
    			sum+=x;//sum加上换弹时间
    			b[i]-=x;//敌人减去换弹时间,因为一秒等于一米
    		}
    		if(b[i]<0)return false;//如果敌人到达山头,Lucky则牺牲 
    		if(b[i]>m)//如没到射程范围内 
    		{
    			sum+=b[i]-m;//sum加上敌人到射程内的时间
    			b[i]=b[i]-m;//敌人减去到射程内的行走的距离,因为一秒等于一米
    		}
    		if(bb==true&&b[i]<=m)//如既有子弹又在射程内,消耗子弹 
    		{
    			bb=false;
    		}
    	}
    	return true;
    }
    int main()
    {
    	cin>>n>>m;
    	int mid,r=1,l=0;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i];
    		l=max(l,a[i]);
    	}
    	sort(a+1,a+1+n);//从小到大排序 
    	while(l-r>1)//二分答案 
    	{
    		mid=(l+r)/2;
    		if(check(mid))r=mid;
    		else l=mid;
    	}
    	cout<<r;
    	return 0;
    }
    

    实数二分

    double r=0,l=10000000;
    	while(l-r>1e-4)//负4,看情况,题目要求保留几位小数+1
    	{
    		double mid=(r+l)/2;
    		if(check(mid)==true)l=mid;
    		else r=mid;
    	}
    

    消息传递P1218

    using namespace std;
    int n;
    double k,a[1000001];
    bool check(double x)
    {
    	double last=a[1]+x;
    	for(int i=2;i<=n;i++)
    	{
    		if((last+k)<a[i]-x)return false;
    		else last=min(last+k,a[i]+x);
    	}
    	return true;
    }
    int main()
    {
    	cin>>k>>n;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i];
    	}
    	double r=0,l=a[n]-a[1];
    	while(l-r>1e-4)
    	{
    		double mid=(r+l)/2;
    		if(check(mid)==true)l=mid;
    		else r=mid;
    	}
    	printf("%.3f",l);
    	return 0;
    }
    
    双指针模板
    int i=1,j=1;
    	while(i<=n&&j<=n)//到达边界则结束循环 
    	{
    		if(...)//当满足某项条件时 
    		{
    			j++;//指针指向另外一个下标 
    		}else{//否则 
    			i++;//另外一个针指向另外一个下标
    		}
    	}
    

    3559

    #include <iostream>
    using namespace std;
    int n,m,a[1000001];
    int b[1000001],sum,ans1=1000000000,ans2=1;
    int main(){ 
    	cin>>n>>m;
    	for(int i=1;i<=n;i++)
    	{
    		cin>>a[i];
    	}
    	int i=1,j=1;
    	b[a[1]]++;
    	sum=1;
    	while(i<=n&&j<=n) 
    	{
    		if(sum==m)
    		{
    			if((i-j+1)<(ans1-ans2+1))
    			{
    				ans1=i;
    				ans2=j;
    			}
    			b[a[j]]--;
    			if(b[a[j]]==0)sum--;
    			j++; 
    		}else{ 
    			i++;
    			b[a[i]]++;
    			if(b[a[i]]==1)sum++;
    		}
    	}
    	cout<<ans2<<" "<<ans1;
    	return 0;
    }
    
  • 最近活动

    • 2023-2024学年冬令营Class6-双指针 作业
    • 2023-2024学年冬令营Class4-二分搜索2 作业
    • 2023-2024学年冬令营Class3-二分搜索1 作业
    • 2023-2024学年冬令营Class1-广搜2 作业
    • 2023-2024学年冬令营Class1-广搜1 作业
    • 张晋嘉、倪穗霆杂题 作业
    • 2023年秋季营lesson15作业-深度优先搜索算法2 作业
    • 2023学年秋季班_模拟测试11 OI
    • 2023学年秋季班_模拟测试10 OI
    • 2023年秋季营lesson14作业-深度优先搜索算法1 作业
    • 2023年秋季营lesson13作业-递归算法2 作业
    • 2023学年秋季班_模拟测试08 OI
    • 2023年秋季营lesson12作业-递归算法1 作业
    • 2023年秋季营lesson11作业-阶段测试2(仅供改题) 作业
    • 2023年秋季营lesson10作业1-栈 作业
    • 2023年秋季营lesson9作业2-差分前缀和 作业
    • 2023年秋季营lesson9作业1-递推算法 作业
    • 2023年秋季营lesson8作业-指针&贪心 作业
    • 2023年秋季营lesson7作业-位运算 作业
    • 2023年秋季营lesson6作业-进制转换 作业
    • 2023年秋季营lesson5作业-2023秋季营阶段测试1(仅供改题) 作业
    • 【oiClass公益赛】2023CSPJ模拟赛#10 OI
    • 2023年秋季营lesson4作业-排序&枚举 作业
    • 第五届oiClass信息学夏令营day22作业-结构体和函数 作业
    • 2023年秋季营lesson2作业-字符数组&字符串 作业
    • 2023年秋季营lesson1作业-二维数组 作业
    • 夏令营模拟测试-05 OI
    • 夏令营模拟测试-04 OI
    • 夏令营模拟测试-03 OI
    • 新初一夏令营day12作业-一维数组3 作业
    • 2023年第四届oiClass夏令营线上选拔赛 OI
    • 夏令营day11作业-while语句2 作业
    • 夏令营第一周模拟测试 OI
    • 2022TYSC线上选拔赛 OI
    • 2022TYSC模拟测试04 OI
    • 2022TYSC模拟测试03 OI
    • 2022TYSC模拟测试02 IOI
    • 2022TYSC模拟测试01 IOI
  • Stat

  • Rating

316
已递交
278
已通过
0
题解被赞

状态

  • 评测队列
  • 服务状态

开发

  • 开源

支持

  • 帮助
  • 联系我们

关于

  • 关于
  • 隐私
  • 服务条款
  • 版权申诉
  1. Language
    1. English
    2. 한국어
    3. 简体中文
    4. 正體中文
  2. 兼容模式
  3. 主题
    1. 亮色
    2. 暗色
  1. 粤ICP备2024335011号
  2. Worker 0, 9ms
  3. Powered by Hydro v5.0.0-beta.8 Community
关闭

登录

使用您的 oiClass 通用账户

忘记密码或者用户名?