蚂蚁(离散化+排序+模拟)


Problem Link:http://139.129.36.234/problem.php?id=1277


1277: 蚂蚁

时间限制: 1 Sec   内存限制: 128 MB
提交: 4   解决: 4
[ 提交][ 状态][ 讨论版]

题目描述

一根长度为L厘米的木棍上面有n只蚂蚁,每只蚂蚁要么朝左爬,要么朝右爬,速度为1厘米/秒.当两支蚂蚁想撞时,二者同时掉头(掉头时间忽略不计)。给出每只蚂蚁的初始位置和朝向,计算T秒之后蚂蚁的位置。

输入

输入的第一行为数据组数。每组数据的第一行为3个正整数L,T,n(0<=n<10000);以下n行每行描述一只蚂蚁的初始位置,其中,整数x为蚂蚁距离木棍左端的距离(单位:厘米),字母表示初始朝向(L表示朝左,R表示朝右)。

输出

对于每组数据,输出n行,按照输入顺序输出每只蚂蚁的位置和朝向(Turning表示正在碰撞)。在T秒之前已经掉下木棍的蚂蚁(正好爬到木棍边缘的不算)输出Fell off。

样例输入

2
10 1 4
1 R
5 R
3 L
10 R
10 2 3
4 R
5 L
8 R

样例输出

Case #1:
2 Turning
6 R
2 Turning
Fell off

Case#2:
3 L
6 R
10 R

提示

来源


AC code:

#include<iostream>
#include<algorithm>
#include<stdio.h>
#include<map>
#include<math.h>
#include<string.h>
#include<queue>
#include<vector>
#include<set>
#define LL long long
#define exp 1e-9
#define MAXN 1000010

using namespace std;

struct node{
	int p;
	int d;
	int id;
}Ant1[10010],Ant2[10010];

bool cmp(node a,node b)
{
	return a.p<b.p;
}

char dir[][11]={"L","Turning","R"};

int firstID[10010];

int main()
{
//	freopen("D:\\in.txt","r",stdin);  
    int k,cas,i,L,T,n,x,d,id;
    char ch;
    scanf("%d",&cas);
    for(k=1;k<=cas;k++)
    {
    	scanf("%d%d%d",&L,&T,&n);
    	for(i=0;i<n;i++)
    	{
    		scanf("%d %c",&x,&ch);
    		d=(ch=='L'? -1: 1);
    		Ant1[i].d=d;
    		Ant1[i].id=i;
    		Ant1[i].p=x;
    		
    		Ant2[i].d=d;
    		Ant2[i].id=0;
    		Ant2[i].p=x+T*d;
		}
		sort(Ant1,Ant1+n,cmp);
		for(i=0;i<n;i++)
		{
			firstID[Ant1[i].id]=i;
		}
		
		sort(Ant2,Ant2+n,cmp);
		for(i=0;i<n-1;i++)
		{
			if(Ant2[i].p==Ant2[i+1].p)
			{
				Ant2[i].d=Ant2[i+1].d=0;
			}
		}
		printf("Case #%d:\n",k);
		for(i=0;i<n;i++)
		{
			id=firstID[i];
			if(Ant2[id].p<0||Ant2[id].p>L)
			{
				printf("Fell off\n");
			}
			else
			{
				printf("%d %s\n",Ant2[id].p,dir[Ant2[id].d+1]);
			}
		}
		printf("\n");
	}
	return 0;
}


图卷积(Graph Convolutional Network,GCN)是一种用于处理图数据深度学习模型。它通过在图结构上进行卷积操作来提取节点的特征表示。与传统的卷积神经网络(CNN)不同,图卷积考虑了节点之间的连接关系,能够捕捉到节点在图中的上下文信息。图卷积在社交网络分析、推荐系统、生物信息学等领域有广泛的应用。 遗传算法(Genetic Algorithm,GA)是一种模拟自然进化过程的优化算法。它通过模拟遗传、变异和选择等操作,逐代优化解空间中的个体,以找到最优解。遗传算法适用于解决复杂的优化问题,如旅行商问题、机器学习模型参数优化等。 蚁群算法(Ant Colony Optimization,ACO)是一种模拟蚂蚁觅食行为的优化算法。蚁群算法通过模拟蚂蚁在搜索过程中释放信息素和选择路径的行为,来寻找问题的最优解。蚁群算法常用于解决组合优化问题,如旅行商问题、资源分配问题等。 粒子群算法(Particle Swarm Optimization,PSO)是一种模拟鸟群觅食行为的优化算法。粒子群算法通过模拟粒子在解空间中的搜索和迭代过程,来寻找问题的最优解。粒子群算法适用于连续优化问题,如函数优化、神经网络训练等。 随机森林(Random Forest)是一种集成学习方法,它由多个决策树组成。随机森林通过随机选择特征和样本,构建多个决策树,并通过投票或平均等方式进行集成,来进行分类、回归等任务。随机森林具有较好的泛化能力和抗过拟合能力,适用于处理高维数据和大规模数据集。 XGBoost是一种梯度提升树(Gradient Boosting Tree)的优化实现,它通过迭代地训练多个决策树,并通过梯度下降的方式不断优化模型的预测能力。XGBoost在特征选择、特征交互、缺失值处理等方面具有较好的性能,广泛应用于分类、回归和排序等任务。 LightGBM是一种基于梯度提升树的高效实现,它采用了基于直方图的决策树算法,通过对特征值进行离散化,减少了内存的使用和计算的复杂度。LightGBM在处理大规模数据集时具有较快的训练速度和较低的内存消耗,适用于处理高维稀疏数据和大规模分类、回归任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林下的码路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值