CCF 201803-2 碰撞的小球 c++

CCF CSP201803-2碰撞的小球(c++100) CCF CSP201803-2碰撞的小球 简单模拟 #include<iostream> #include<cstring> #include<algorithm> using namespace std; struct Ball{ int point,v,sno; }ball[110]; bool cmp1(Ball a,Ball b){ if(a.point == b.point) return a.sno < b.sno; return a.point 阅读详情

在这里插入图片描述
//用两个数组分别记录小球的位置和方向。对n个小球分别调整t轮,每一轮更新方向和位置,必须先更新方向再更新位置:到达最左端方向调整为向右,到达最右端方向调整为向左;相撞后方向取反;其他时刻向右走一步加1,向左走一步减1,可以统一表示为a[j]+b[j]。注意这n个小球的初始位置是无序的,所以不能a[i]==a[i+1]表示碰撞。检测碰撞的时候内层循环要从k=j+1开始,否则每对相当于改变了两次符号,就错了。

#include <iostream>
using namespace std;
int main()
{
    int n,t,L;
    cin >> n >> L >> t;
    int a[1000]={0},b[1000]={0};
    for(int s=0;s<n;s++)//初始值存入数组
    {
       cin >> a[s];
       b[s]=1;//方向初始化为向右
    }
    for(int i=0;i<t;i++)//t轮调整
    {
        //处理端点方向
        for(int j=0;j<n;j++)
        {
             if(a[j]==0) b[j]=1;
             else if(a[j]==L) b[j]=-1;
        }
        //处理相撞后的方向
        for(int j=0;j<n;j++)
        {
            for(int k=j+1;k<n;k++)
            {
              if(a[j]==a[k])
              {
                 b[j]*=-1;
                 b[k]*=-1;
              }
               
            }
        }
        //位置更新
        for(int j=0;j<n;j++)
              a[j]+=b[j];
    }
    for(int k=0;k<n;k++)
           cout << a[k] << " ";
    //cout << endl;
    return 0;
}

以上是100分代码

二刷:

#include <bits/stdc++.h>
struct point{
	int pos;
	int flag;//1右-1左 
};
using namespace std;
int main()
{
	int n,l,t;
	cin >> n >> l >> t;
	point a[n];
	for(int i=0;i<n;i++)
	{
	    cin >> a[i].pos;
		a[i].flag=1;	
	}
	for(int j=0;j<t;j++)
	{
		for(int i=0;i<n;i++)
		{
		    if(a[i].pos==l)
			{
				a[i].flag=-1;
			}  
		    if(a[i].pos==0)  
			{
				a[i].flag=1;	
			}		
	    }
	    for(int i=0;i<n;i++)
	    {
	    	for(int k=i+1;k<n;k++)
			{
				if(a[i].pos==a[k].pos)
				{
					a[i].flag*=-1;
					a[k].flag*=-1;
				}
			} 
	    }
	    for(int i=0;i<n;i++)
	    {
	    	a[i].pos+=a[i].flag;
	    }
	}
	for(int i=0;i<n;i++)
	{
		cout << a[i].pos << " ";
	}
	return 0;
}
CCF CSP 201803-2 碰撞的小球(C++解法 100分) 问题描述   数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。   当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小。   当两个小球撞到一起的时候,两个小球会分别向与自己原来移动的方向相反的方向,以原来的速度大小继续移动。  ... 阅读详情

相关推荐

C++小球碰撞C++ 小球碰撞

C++ 小球碰撞 C++ 小球碰撞 C++ 小球碰撞

若干小球碰撞的一种暴力解题法

目录引言具体解法问题描述输入输出样例输入样例输出解题思路代码实现总结 引言        高中物理有一个十分经典的问题,即小球碰撞问题。将这个物理问题简化,不考虑能量损耗,且假设每个小球的速度大小与质量都一致,就成为一个经典的算法问题,即给定若干小球的初始位置与速度矢量,计算一段时间后各小球的位置与运动情况。        这是一个很经典的问题,也已经有了许多C语言的

weixin_52925292的博客 1488

小球碰撞代码c++

c++编写,简单易懂,大师手笔 28/10/200 Programmer: Dimitrios Christopoulos * Windows Frame Code Was Published By Jeff Molofee 2000 * Code Was Created By David Nikdel For NeHe Productions * If You've Found This Code Useful, Please Let Me Know. * Visit My Site At nehe.gamedev.net #include // Header File For Windows #include // Header File For Math Library Routines #include // Header File For Standard I/O Routines #include // Header File For Standard Library #include // Header File For The OpenGL32 Library #include // Header File For The GLu32 Library #include "tvector.h" #include "tmatrix.h" #include "tray.h" #include #include "image.h"

运动物体碰撞算法演示【转】

1,test.js代码var getFlag=function (id) { return document.getElementById(id); //获取元素引用 } var extend=function(des, src) { for (p in src) { des[p]=src[p]; } return des; } var clss=['

feihuadao的专栏 1787

VC++模拟小球碰撞

利用VC++6.0 MFC 模拟小球碰撞过程,可设置两个小球的速度

国产大模型编程能力深度分析报告(2026年5月更新版)

2026年5月国产大模型编程能力报告显示,主流模型迎来重大升级。DeepSeek V4以1.6T参数创性能新高,Qwen3.6-Plus支持原生多模态编程,MiniMax M2.7转向闭源并优化Agent编码,Kimi K2.6成为商业化成熟的主力模型,GLM-5开源并涨价30%。阿里云百炼推出双轨订阅体系,区分团队和个人开发者需求。各模型在参数规模、上下文长度、性能表现和适用场景上各具优势,国产AI编程服务正加速向订阅制转型,成本效益显著提升。

Willin Wang 的全栈升级指南 1647

201803-2 碰撞的小球(C++)

试题编号: 201803-2 试题名称: 碰撞的小球 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。   当小球到达线段的端点...

啥也没有 1696

峰值电流模式CCM BUCK的传递函数推导

电流内环闭环传递函数: Gci(s)=i^L(s)v^comp(s)=FmGid(s)1+KRiHe(s)FmGid(s)=1Ri11+s[mcL+(0.5VIN−Vo)RiVINRifSW]+s21(πfSW)2 G_{ci}(s)=\frac{\hat i_{L}(s)}{\hat v_{comp}(s)}=\frac {F_mG_{id}(s)}{1+KR_iH_e(s)F_mG_{id}(s)}=\frac{1}{R_i}\frac{1}{1+s[\frac{m_cL+(0.5V_{IN}-V_o)

c007106333的博客 2356

碰撞的小球 201803-2 C++

碰撞的小球 201803-2 C++

qq_45727086的博客 633

Shopee滑块验证码太刁钻?手把手教你用Python+Playwright绕过弧形验证(附影刀RPA接入代码)

本文详细介绍了如何使用Python和Playwright结合SadCaptcha第三方服务高效破解Shopee平台的弧形滑块验证码,并集成到影刀RPA工作流中。该方案开发周期短、准确率高(>90%),特别适合跨境电商自动化操作,已在实际项目中验证成功。

weixin_29284657的博客 567

告别外置电阻!揭秘MAX22201集成电流检测的5大设计优势(附PCB布局案例)

本文深入解析MAX22201集成电流检测技术在直流有刷电机驱动中的5大设计优势,包括BOM成本降低、PCB空间优化、动态性能提升等。通过与传统方案(如DRV8871+外置电阻)的实测对比,展示其在高精度电流检测、抗干扰能力和PCB布局简化方面的突破,并附有详细的PCB布局案例和配置指南。

weixin_29189377的博客 243

C++实现CCF201803-2 碰撞的小球

问题描述   数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。   当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小。   当两个小球撞到一起的时候,两个小球会分别向与自己原来移动的方向相反的方向,以原来的速度大小继续移动。 ...

MK422的博客 537

【深度学习】什么是交叉注意力机制?

输入序列:自注意力机制在同一个输入序列内建立注意力,交叉注意力机制在不同的输入序列间建立注意力。应用场景:自注意力机制多用于单一模态的任务(如纯文本任务),交叉注意力机制多用于多模态任务(如图像和文本的结合)。计算过程:自注意力机制的查询、键和值都来自同一个输入序列,而交叉注意力机制的查询来自一个输入序列,键和值来自另一个输入序列。

q742971636的博客 7370

CCF201803-2碰撞的小球C++实现满分

思路 小球的结构体: typedef struct { int x; bool v; }Ball; x表示小球的位置,v表示小球的运动方向,true为向右,false为向左。   该问题的核心是弄清楚小球每移动一步之后的位置以及方向何时改变,由此我们把问题分为两个小问题: 1、小球的移动 2、小球方向的改变 为了记录小球的位置以便判断是否改变方向,我们定义一个数组dire[],初...

qfccCoder的博客 690

华为OD机试真题2026双机位C卷 C语言 实现【主次关联成环警告】

在ICT运维领域,现网运维工程师面向对设备上报的众多告警,往往需要筛选出最主要的告警优先处理,次等级的告警或许为同一个根因导致的告警,处理优先级会放后或者不处理,这样就诞生出主次关联告警的概念。给定一系列告警的主次关联关系,判断是否存在如下情况:

MISAYAONE的博客 172

客服转人工率直降60%!OpenClaw深度集成NLP引擎,打造企业级对话自动化智能客服系统

本文介绍了一套基于OpenClaw智能体框架和NLP大模型引擎的智能客服系统解决方案。该系统通过深度集成NLP引擎实现精准语义理解,采用分层架构设计支持多渠道接入和业务系统对接,显著提升了客服效率。核心亮点包括:92%的重复问题自动解决率,60%的转人工率下降,40%的人力成本降低,以及从30秒压缩至0.5秒的平均响应时长。文章详细阐述了技术选型、系统架构设计、核心模块实现等关键环节,展示了如何通过智能对话系统破解传统客服业务中的人力资源与服务质量矛盾。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 361

CCF-CSP 201803-2 碰撞的小球

CCF-CSP 201803-2 碰撞的小球问题描述代码 问题描述 代码 #include<iostream> using namespace std; bool bang(int x,int j,int n,int a[]){ for(int i=0;i<n;i++){ if(i!=j && a[i] == x) return true; } return false; } int main(){ int n,L,t; cin>>n>

SYSU_Zhiyuan 249

华为OD机试 - 统计文本数量(Java 2025 A卷 100分)

华为OD机试 2025A卷题库疯狂收录中,刷题。

学Java,找哪吒 1438

ccf csp认证 201803-2 碰撞的小球100分代码 c++

试题编号: 201803-2 试题名称: 碰撞的小球 时间限制: 1.0s 内存限制: 256.0MB #include <iostream> using namespace std; struct Ball{ int set; bool flag=true; }; struct llu{ int ball1=-1; int ball2=-1; }; int main(in...

weixin_43620061的博客 231

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

ccf 201803-1 跳一跳 201803-2 碰撞的小球 AC代码 C++

目录 跳一跳AC代码 碰撞的小球 思路 AC代码 #include<iostream> #include <cstdio> using namespace std; int main() { int num; int sum=0; int temp; while(~scanf("%d",&num)&&num!=0) { ...

sinat_35645479的博客 266

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

CCF 201803-2 碰撞的小球 C++版

问题描述   数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。   当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小。   当两个小球撞到一起的时候,两个小球会分别向与自己原来移动的方向相反的方向,以原来的速度大小继续移动...

qq_43156236的博客 290

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

CCF碰撞的小球

## CCF 201803-2 碰撞的小球 #include<bits/stdc++.h> using namespace std; struct ball{ int s; bool direction; //true 为右移, false为左移。 }; ball index[1050]; int main(){ int n, L, t; cin >...

my_new_journey的博客 124

CCF---201803-2---碰撞的小球---C++

问题描述 /  数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。   当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小。   当两个小球撞到一起的时候,两个小球会分别向与自己原来移动的方向相反的方向,以原来的速度大小继续移动。 ...

Ashen的博客 454

CCF认证201803-2碰撞的小球

CCF认证201803-2碰撞的小球题目描述算法设计+题目分析注意点+记录点代码(100分)感谢链接 题目描述 CCF认证201803-2碰撞的小球 算法设计+题目分析 分析题目: 1、读入所有数据,初试化每个小球的位置、方向、是否改变过方向; 2、在每一秒,先判断小球的方向是否发生了变化,如果发生了变化,就重置小球的方向(变化条件是:触边、碰撞); 3、根据当前的所有小球的参数,走一步; 4、循...

weixin_38562500的博客 391

CCF碰撞的小球(201803-2)

题的链接:CCF碰撞的小球(201803-2) 题解: 模拟每一秒钟的变化即可,模拟每一次时都要预先去判断当前有没有两个小球以及相遇并且方向相反,若相遇了,则需要将它的方向改变一下,变为相反的方向,然后再对每个小球进行加1操作,分情况讨论: 1、朝右走,没有走到头,则直接++,走到头的话,则方向变为-1, 位置–;2、朝左走,没有到达起点,则直接–, 到达起点的话,则改变为相反的方向,位置++即可...

小牛的博客 182

ccf_201803-2_碰撞的小球(c++)

试题编号: 201803-2 试题名称: 碰撞的小球 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。   当小球到达线段的端点...

aoe_xiu的博客 566
上一篇: CCF 201803-1 跳一跳 C++
下一篇: CCF 201712-1 最小差值 C++
cloudless_sky
博客等级 码龄8年 106粉丝 128原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值