首页 > 其他分享 >第一次双周赛

第一次双周赛

时间:2023-10-16 18:13:43浏览次数:35  
标签:index int double sum mi 第一次 ++ 双周

第一次双周赛

7-2 a*b

  • 知识点:十六进制数的高精度乘法

  • 核心代码:用两个for循环处理

    for(int i=0;i<len1;i++)
    	{
    		len3=i;
    		for(int j=0;j<len2;j++)
    		{
    			z[len3]+=x[i]*y[j];
    			if(z[len3]>=16)
    			{
    				z[len3+1]+=z[len3]/16;
    				z[len3]%=16;
    			}
    			len3++;
    		}
    	}
    
  • 注意:要记得去掉先导0!!

    int index=len1+len2;
    	while(index>0&&z[index]==0)
    	index--;
    	for(int i=index;i>=0;i--)
    	{
    		if(z[i]>=0&&z[i]<=9)
    		cout<<z[i];
    		else 
    		cout<<q[z[i]-10];
    	}
    

7-3 山头狙击战

  • 知识点:二分答案(装子弹时间:最大的最小

  • 主要思路:mi[]数组记录敌人一开始的位置,sort排序,从离小明最近的敌人开始考虑

    ​ 用s记录下一个敌人往前走了多少

    ​ mi[i]-s表示敌人距离小明的相对位置

    ​ 二分法检查当前答案是否能让能击倒敌人数大于实际敌人数

    #include<bits/stdc++.h>
    using namespace std;
    int m,n,mi[10000005],ans=-1,sum=0,s=0;
    bool check(int k)
    {
    	if(mi[0]>m)
    	s=mi[0]-m; //s表示下一个敌人往前走了多少 
    	sum++;
    	for(int i=1;i<n;i++)
    	{
    		s+=k;
    		if(mi[i]<s) break; //敌人已经到小明处
    		else if(mi[i]-s>m) //敌人在小明射程以外
    		{
    			s+=mi[i]-s-m;
    			sum++; 
    		 } 
    		 else
    		 sum++;
    	}
    	
    	if(sum>=n) return true;
    	return false;
    }
    int main()
    {
    	cin>>n>>m;
    	for(int i=0;i<n;i++)
    	cin>>mi[i];
    	sort(mi,mi+n);
    	
    	int l=1,r=mi[n-1];
    	while(l<=r)
    	{
    		int mid=l+(r-l)/2;
    		if(check(mid))
    		{
    			ans=mid;
    			l=mid+1;
    		}
    		else
    		{
    			r=mid-1;
    		}
    		sum=0;
    		s=0;
    	}
    	cout<<ans<<endl;
    	return 0;
    }
    

7-5 一元三次方程

  • 二分大法好QWQ
#include <bits/stdc++.h>
using namespace std;
double a,b,c,d,n,p,q;
double f(double x){
    return (a*x*x*x+b*x*x+c*x+d);
}
void js(){
    for(double i=p;i<q;i++){
        double l=i,r=i+1,mid;
        if(f(l)==0) printf("%.6lf ",l);
        else if(f(l)*f(r)<0){
            while((r-l)>1e-7){
                mid=(l+r)/2;
                if(f(mid)*f(r)<=0) l=mid;
                else r=mid;
            }
            printf("%.6lf ",l);
        }
    }
}
int main(){
	int t;
	cin>>t;
	while(t--)
	{
		cin>>a>>b>>c>>d>>p>>q;
		js();
		cout<<endl;
	}
    return 0;
}

标签:index,int,double,sum,mi,第一次,++,双周
From: https://www.cnblogs.com/xiaoyangii/p/17768030.html

相关文章

  • 第五次双周赛
    第五次双周赛目录第五次双周赛L1-3帅到没朋友L1-7连续因子L2-1红色警报(并查集)L2-2秀恩爱分得快L2-3插松枝L2-4哲哲打游戏L1-3帅到没朋友看题不仔细!!坑1:00000到99999,都是五位数,不足需要补0坑2:用sum记输出数量来决定是否输出空格,不能用m!=1记,因为最后一个被......
  • 第四次双周赛
    第四次双周赛目录第四次双周赛L1-2日期格式化L1-6正整数A+B(getline)L2-1排座位(并查集)L2-2名人堂与代金券L2-3包装机(栈和队列)L2-4愿天下有情人皆是失散多年的兄妹L1-2日期格式化当时写的时候忘记补0咋写了用if硬加的printf("%02d",m);//输出m宽度为2,不足前面补0p......
  • 第三次双周赛
    第三次双周赛7-1打字疯狂枚举#include<bits/stdc++.h>usingnamespacestd;inta[15]={0};intmain(){ strings; cin>>s; intlen=s.length(); for(inti=0;i<len;i++) { switch(s[i]){ case'1': case'Q': case'A......
  • 第二次双周赛
    第二次双周赛7-1输出全排列知识点:应该不是要用函数但是函数真好用​ next_permutation()产生全排列#include<bits/stdc++.h>usingnamespacestd;intmain(){ intn; charch[1000]; cin>>n; for(inti=0;i<n;i++) ch[i]=i+1+'0'; ch[n]='\0'; do {......
  • 第一次接触计算机语言以及对未来的学习计划
       大家好,我是来自广州某大学的一名计算机初学者,同时也是一名新进小比特,很高兴能和大家在这里相遇,对于怎样学习计算机语言,我相信也有不少的兄弟们会有困感,对此我想在此分享自己的一些愚见。 首先,要制定相定的编程目标,你在学习编程语言的路上能走多远取决于你是否有兴趣去认......
  • 第一次作用
    1.自我介绍我是钱海超,来自浙江宁波,是一名电气工程及其自动化的学生,平常喜欢学习、锻炼身体,打游戏。目前具备pcb板初步设计能力,简单的c语言及单片机编程能力和一些简单的电网、自动控制的知识。2.课程期待期待在本学期的课程中能够学到软件开发的相关知识,对日后找工作能有所帮助。......
  • 数据库解决获取一个字段parent中某个字符串child第一次和第二次出现的位置之间的内容c
    下面就postgresql数据和oracle数据库分别提供两种解决方法--postgresql数据库解决获取一个字段parent中某个字符串child第一次和第二次出现的位置之间的内容cut--方法一selectcasewhenposition(childinparent)>0thensubstring(parent,position(childinparent)+l......
  • Java题目集第一次总结
    前言此Blog是对Java的PTA作业的总结,旨在分析和总结所做过的Java题目,以加深对Java的理解和加强对Java的运用。前三次PTA中涉及到了类和数组的基本运用,字符串的操作,数据的封装,日期类的方法的基本运用等知识点。第一次作业题量适中,难度也适中;第二次作业题量偏多,难度偏大;第三次作......
  • 第一次git上传的完整流程
    第一次git上传的完整流程使用git简单命令上传代码push到远程仓库+简单介绍了一个.git文件结构。代码上传到gitee和github流程一样的,不过你上传到github可能网不行失败,所以我们使用gitee*前置说明你必须有git工具并且配置了环境变量。配置环境变量使用git会更方便。测......
  • KubeSphere 社区双周报 | OpenFunction v1.2.0 发布 | 2023.09.15-09.28
    KubeSphere社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过commit的贡献者,并对近期重要的PR进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。本次双周报涵盖时间为:2023.09.15-2023.09.28。贡献者名单新晋KubeSphereCon......