poj1696 Space Ant

ARIMA模型的R实现 1.模型简介 ARIMA模型,全称差分自回归移动平均模型。可以看作是差分运算和ARMA模型的结合。主要是针对具有线性趋势的非平稳的时间序列,来进行建模预测。 ARIMA模型的形式如下: Φ(B)∇ 阅读详情

        题意:一只蚂蚁,爬行时不能右转,不能经过自己爬过的路径。它去吃坐标系(第一象限)里的一些植物,起点在x=0,y=植物的最小纵坐标处。问以什么顺序吃,能吃到最多,输出吃到的植物数和顺序。

        思路:其实,蚂蚁一定能吃到所有的植物,这是个坑。它的爬行轨迹是一条螺旋线,能经过所有的点。y最小中x最小的点肯定是第一个点,初始方向为x轴正方向。维护一个当前方向(或者说是上一个点和当前点),然后枚举每一个没有经过的点,拐角(利用点积的性质计算,因为角的范围是[0,pi],余弦函数在此区间单调)最小的为下一个点,如果多个点拐角相等(浮点数不好直接比较,另写一个函数),则选择最近的点。


#include <iostream>
#include <stdio.h>
#include <cmath>
#include <algorithm>
#include <iomanip>
#include <cstdlib>
#include <string>
#include <memory.h>
#include <vector>
#include <queue>
#include <stack>
#include <ctype.h>

using namespace std;

struct point{
	int x;
	int y;
	
};

point pt[110];
bool used[110];

bool equal(double a,double b){//绝对值很小认为相等
	if(abs(a-b)<0.000001)return true;
	return false;
}
int dp(int x1,int y1,int x2,int y2){//点积
	return (x1*x2+y1*y2);
}
double dist(point p1,point p2){//
	return sqrt(((double)p1.x-p2.x)*(p1.x-p2.x)+((double)p1.y-p2.y)*(p1.y-p2.y));
}


int main(){
	int M;
	cin>>M;
	while(M--){
		memset(used,0,sizeof(used));
		int N;
		cin>>N;
		int starty=INT_MAX;
		int startx;
		int starti;
		for(int i=1;i<=N;i++){
			int a;
			cin>>a;
			cin>>pt[a].x>>pt[a].y;
			if(pt[a].y<starty){
				starty=pt[a].y;startx=pt[a].x;starti=i;
			}
		}
		
		used[starti]=true;
		point last;
		last.x=0;last.y=starty;
		point cur;
		cur.x=startx;cur.y=starty;
		
		cout<<N<<" "<<starti<<" ";
		for(int i=1;i<N;i++){
			double maxangle=-1.1;
			int key;
			for(int j=1;j<=N;j++){
				if(used[j])continue;
				
				int dpval=dp(cur.x-last.x,cur.y-last.y, pt[j].x-cur.x,pt[j].y-cur.y);
				if(equal(dpval/dist(last,cur)/dist(cur,pt[j]),maxangle)){
					if(dist(cur,pt[j])<dist(cur,pt[key])){
						maxangle=dpval/dist(last,cur)/dist(cur,pt[j]);
						key=j;
					}
					continue;
				}
				if(dpval/dist(last,cur)/dist(cur,pt[j])>maxangle){
					maxangle=dpval/dist(last,cur)/dist(cur,pt[j]);
					key=j;
				}
			}
			last.x=cur.x;last.y=cur.y;
			cur.x=pt[key].x;cur.y=pt[key].y;
			used[key]=true;
			cout<<key;
			if(i==(N-1)){
				cout<<endl;
			}else{
				cout<<" ";
			}
		}
		
	} 
	return 0;
}



全局注意机制 GAM | Global Attention Mechanism: Retain Information to Enhance Channel-Spatial Interactions 全局注意机制 GAM 阅读详情

相关推荐

思岚A1 上手教程

前言 寒假在家闲着也是闲着,索性就向是实验室借了一个思岚 A1激光雷达,来进一步完成自己的实验室实习项目。经过一个月在Linux上和ROS上的摸爬滚打,我已经对机器人开发和SLAM有了初步了解,现在就写个上手教程吧(以防自己以后忘了)。 Basic Support 硬件 一台电脑 思岚 A1激光雷达 软件 安装Virtual Box虚拟机 在虚拟机安装Ubuntu 16操作系统 在Ubuntu 16搭建ROS kinetic 简要步骤 1.现在w..

ajxdhe的博客 6383

Poj-1696-Space Ant

Description The most exciting space discovery occurred at the end of the 20th century. In 1999, scientists traced down an ant-like creature in the planet Y1999 and called it M11. It has only one eye

yeyun666的博客 385

我爬取了某非法网贷后台系统数据,终于知道什么叫做利滚利滚利滚利了

我爬取了非法贷款的后台网站!

weixin_44042821的博客 2880

POJ 1696 Space Ant

POJ 1696 Space Ant Description The most exciting space discovery occurred at the end of the 20th century. In 1999, scientists traced down an ant-like creature in the planet Y1999 and called it M11. It...

旺崽的博客 3087

qt工程引入opencv库步骤

第一步:新建qt工程 第二步:在工程名.pro文件中添加opencv库的路径                   INCLUDEPATH += /home/liyuanzhe/opencv-2.4.8/include/opencv \ /home/liyuanzhe/opencv-2.4.8/include/opencv2 LIBS += /home/liyuanzhe/open

superyuanzhe的专栏 5722

unity人物刚体移动_Unity3D实现2D人物移动-总结篇

背景最近研究Unity3d,2d寻路的实现。所以又一次涉及到了角色坐标位移的问题。系统的对于角色鼠标点击移动这个简单问题进行整理和总结。本来就是一个简单的几何问题,结果发现已经有两个小坑,顺便填上,这里做下总结。实现需求:通过鼠标点击,控制2d角色移动,就是点哪里,角色向移动到哪里问题分解:按照时间进行动画分解,鼠标输入(动画开始)、平移(动画进行)、移动结束(动画结束)前提:这里前面的文章基本解...

weixin_39610366的博客 1275

POJ1696 Space Ant 【凸包-ToLeft-Test】

#include<map> #include<set> #include<ctime> #include<cmath> #include<queue> #include<string> #include<vector> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<function

禅境花园 585

OpenCLI入门:让任何网站变成你的命令行工具(超详细版)

最有用的工具,往往是最简单的。 opencli就是这样。 它不会帮你写代码,不会帮你做决策,但它能把200+个平台装进你的命令行。 让你用最简单的方式,获取最丰富的数据。

weixin_66295112的博客 2089

poj 1696 Space Ant

题意:对顶点圈出一个向左转的最长的罗璇, 顶点只能走过一次,罗璇没有交线; 分析:对任意点集, 都能圈出一个罗璇包含所有节点; 用叉积判断罗璇方向,圈出罗璇就行,注意输出点数和起始位置 #include #include #include #include #include #include #include #define MAX 10005 #define INF 1

极度猥琐 963

保姆级教程:用GROMACS的FEP方法计算小分子结合自由能(附完整mdp配置)

本文提供了一份详细的GROMACS自由能微扰(FEP)计算教程,涵盖从系统准备、参数配置到结果分析的全流程。通过具体案例演示如何计算小分子结合自由能,包括λ窗口设计、动力学参数优化及并行化执行技巧,帮助研究者克服FEP计算中的常见问题,获得可靠的自由能数据。

weixin_30598225的博客 353

ESP32S3 TLS 握手WIFI可用但是在蜂窝热点下卡死:排查方法与根因

设备卡在等。

摸鱼专家 86

POJ1696-Space Ant

Space Ant Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3054   Accepted: 1950 Description The most exciting space discovery occurred at the end of the 20th c

ecjtu_acm_菜鸟—鱼尾尾 716

手把手教你新建一个winform项目(史上最全)

本文介绍如何利用visual studio新建一个winform程序

qq_34059233的博客 4万+

POJ - 1696 Space Ant

求二维凸包方法的灵活运用 POJ - 1696 Space Ant 题意: 从y坐标最小的点,如果有多个点,那么在选x坐标最小的点,作为起点。 只能左转或直行不能右转,不能回头问最大的能够经过的点的个数,和输出依次经过的顺序 思路: 步骤1:先找出起点 步骤2:小数据,直接暴力。for循环一次,其中每次sort(p+i,p+n+i,cmp),从i开始是因为其前面的点已经按照顺序排好序了。同时cmp这里类似求二维凸包的基础做法去就写了,注意共线情况特殊处理,使距离近的靠前。使得该次去达的点排第一个就行(这里

一只大菜鸡的博客 324

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

poj1696Space Ant(入门凸包)

题目链接: http://poj.org/problem?id=1696 这道题直接就是凸包模板了。。我用的卷包裹法 AC代码: #include #include #include #include using namespace std; #define inf 9999999 struct point { int x,y; }; point p[55]; //叉积计算 i

ACMan 908

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

POJ-1696-Space Ant(凸包变形)

题目链接:http://poj.org/problem?id=1696 题目大意:给出一些点,让你只能向左转向走完所有的点,输出路径。 思路:按着要求模拟即可,走过的点标记一下,然后跑凸包即可。 ACCode: //#pragma comment(linker, "/STACK:1024000000,1024000000") #include<stdio.h> #inc...

永远鲜红の幼月的博客 366

POJ 1696 Space Ant 【几何叉积】

传送门:POJ 1696 Space Ant Time Limit: 1000MS Memory Limit: 10000K Problem Description The most exciting space discovery occurred at the end of the 20th century. In 1999, scientists traced down an an...

Waiting For You 192

POJ1696 Space Ant

  原题传送:http://poj.org/problem?id=1696   利用叉积判断所有点与线段位置关系。下一棵植物A'的位置与蚂蚁位置A的连线得到线段AA',如果所有没有吃掉的植物均在AA'的左端,那么A'为应该吃的下一目标(如果多个植物在同一条直线上,先吃最近的一个)。因为无论坐标如何变化,在最有的状态下,蚂蚁总会把所有植物都吃掉,可以利用这个条件退出循环。 View Code ...

weixin_30900589的博客 61

poj1696 Space Ant 点积,叉积,夹角

//某一赛区题,poj题目链接:http://poj.org/problem?id=1696 //题意:在一个平面内给出N个点,每两点之间没有相同的x或y, //求从y最小的一点开始,每次都向左移动,能有多少点符合并求出点对应的下标(要求路线不相交)。 //解题思路:第一个点是y最小的点,重点在第二个点要找哪个点,就是x轴正方向夹角最小的点; //再用点积,叉积和夹角,找出其它的点

三思 718

POJ 1696 Space Ant

The most exciting space discovery occurred at the end of the 20th century. In 1999, scientists traced down an ant-like creature in the planet Y1999 and called it M11. It has only one eye on the left s

Occult 657

poj1696Space Ant

Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3316   Accepted: 2118 Description The most exciting space discovery occurred at the end of the 20th century. In 1999, scie

Last Order 928

Space Ant POJ - 1696 点的排序

题目链接:https://vjudge.net/problem/POJ-1696 转自:https://blog.youkuaiyun.com/yeyun666/article/details/50061923 题意:给多个点,起点是(0,给的点中最小的y),要求只能向左转并且路径不能相交,求最多可以经过的点并输出路径。 思路:首先一定可以经过所有点。 先找出左下角的点,然后不断排序来寻找在它左边最靠近它的...

A 203
上一篇: poj 1556 The Doors
下一篇: UVA567 Risk
squee_spoon
博客等级 码龄14年 61粉丝 455原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值