uva 10570 meeting with aliens

【rotors】多旋翼无人机仿真(五)——多无人机仿真 如何创建多个无人机仿真 阅读详情

//
//  main.cpp
//  uva 10570 - Meeting with Aliens
//
//  Created by XD on 15/8/17.
//  Copyright (c) 2015年 XD. All rights reserved.
//
/*
 这题我也是醉了,看错题了,一位只能相邻的可以交换,害的我好久没想出来。
 现在时任意两个都可以交换,那么就好做了。
 只要暴力枚举1的位置和形成环的方向,就可以完成了。
 */

#include <iostream>
#include <string>
#include <queue>
#include <stack>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include<vector>
#include <string.h>
#include <string>
#include <algorithm>
#include <set>
#include <map>
#include <cstdio>
using namespace std ;
const int maxn = 500 + 10 ;
int  pos[maxn] ;
int t_pos[maxn] ;
int t_aliens[maxn] ;
int aliens[maxn] ;
int n ;
int min(int x , int y)
{
    return  x > y ? y:x  ;
}

void  Myswap(int x,int destination)
{
    int temp = t_aliens[destination]  ;
    t_aliens[destination] = x ;
    t_aliens[t_pos[x]] = temp ;
    t_pos[temp] = t_pos[x] ;
    t_pos[x] = destination ;
    
}
 int getNextPos(int start , int i ,int way)
{
    if (way == 0) {
        return (start + i - 1)%n ;
    }
    else{
        
        int t = (start - i +1)% n ;
        if (t <  0) {
            return t + n ;
        }
        else{
            return t ;
        }
    }
    
}
int solved(int start)
{
    int ans =1010 ;
    for (int way = 0; way < 2; way++) {
        memcpy(t_pos, pos, sizeof(int) * n + 5) ;
        memcpy(t_aliens, aliens, sizeof(int )* n + 5) ;
        int tans = 0 ;
        for (int i = 1; i <= n ; i++) {
            int destination = getNextPos(start  ,i,way) ;
            if (t_pos[i] == destination) {
                continue ;
            }
            else{
                Myswap(i, destination) ;
                tans++ ;
            }
        }
        ans =min(ans ,tans) ;
    }
    return ans  ;
}
int main() {
    while (scanf("%d" ,&n) , n) {
        for (int i = 0; i < n; i++) {
            scanf("%d" ,&aliens[i]) ;
            pos[aliens[i]] = i ;
        }
        //枚举起点
        int  ans = 1010 ;
        for (int i  = 0; i < n ; i++) {
            
            ans = min(solved(i) , ans) ;
            if (ans == 0 ) {
                break ;
            }
        }
        printf("%d\n" ,ans) ;
        
    }
    
    
    return 0;
}


Excel基金净值自动更新:手把手教你用Power Query抓取天天基金网数据(含常见错误修复) 本文详细介绍了如何利用Excel内置的Power Query工具,从天天基金网自动抓取基金净值数据,实现表格数据的自动刷新。通过手把手教程,您将学会构建参数化查询、整合多基金数据、计算持仓盈亏,并解决网页结构变动等常见错误,最终打造一个专属的、可自动更新的基金监控仪表盘,彻底告别手动更新。 阅读详情

相关推荐

Tiff、jpg图片怎么样添加地理坐标信息

Tiff、jpg图片怎么样添加地理坐标信息 一般,外业调查只有地图资料,如专题图、或者地形图,如何把这些地图资料的扫描地图带上坐标信息,从而内业实现信息化处理?以上问题,可以解决,但根据不同情况有不同的处理方法。     第一种,上面有经纬度外框,图片是矩形,但是没有地理信息。 通过图框的两个角的坐标确定范围,分别是左上(140°E,30°N);右下(150°W,30°N) 解决方

树木_xzw的博客 2万+

uva 10570 - Meeting with Aliens

题目链接:uva 10570 - Meeting with Aliens 题目大意:有n个外星人,然后给出他们的序号,问说最少交换几次使得n个外星人形成有序的序列。 解题思路:参考别人的思路,每次交换位置1和1的,然后位置2和2.....这样交换的次数最少。 #include #include #define min(a,b) (a)<(b)?(a):(b)

不慌不忙、不急不躁 1524

Windows安装ros2(Jazzy版本+win10/win11)-1.配置windows终端

更高版本的terminal可能设置里更加丰富, 有默认以管理员身份启动的选项等,可自行配置。打开微软应用商店, 在其中搜索并下载 Terminal 即可(注意别挂梯子)下载并安装, 安装的位置自行替换,建议别放到系统盘中。点击任务栏中的搜索, 输入store。

weixin_48398592的博客 1454

UVA - 10570 Meeting with Aliens (置换的循环节)

给出一个长度不超过500的环状排列,每次操作可以交换任意两个数,求把这个排列变成有序的环状排列所需的最小操作次数。 首先把环状排列的起点固定使其成为链状排列a,枚举排好序时的状态b(一种有2n种可能),则b可以看成是原状态a的一个置换,把a变为b所需的最小交换次数即为a的长度n减去置换循环节的数量。 1 #include<bits/stdc++.h> 2 3 usi...

weixin_30628801的博客 166

安卓直链APK安装拦截全解析:从Play Protect到厂商管控的应对指南

在移动应用分发领域,APK(Android Package)安装是开发者与用户交互的关键环节。其核心原理涉及安卓系统的安全沙箱机制与权限管理体系,旨在保护用户设备免受恶意软件侵害。这一机制的技术价值在于平衡了应用生态的开放性与安全性,但也在应用推广、企业内部分发等场景中带来了挑战。尤其在通过官网、广告等直链渠道分发APK时,常会遇到安装转化率骤降的问题。这背后主要受到Google Play Protect云端扫描、安卓系统安装权限模型演进(如Android 8.0+的安装源授权)以及设备制造商附加安全层(如

weixin_33894640的博客 469

CST STUDIO SUITE 2023安装

破解工具的Crack文件夹内有一个名为「CST Studio Suite 2022」的文件夹,这也是于CST的安装目录同名的文件夹,直接把它拷贝到CST Studio Suite 2022的同级路径下即可,比如你的CST安装路径为:D:\Program Files\CST Studio Suite 2022,则将Crack目录内的「CST Studio Suite 2022」文件夹复制到 D:\Program Files\ 这个级别的路径下即可。软件百度网盘链接放在文章末尾啦!先不着急启动CST或者激活。

m0_49516223的博客 4126

uva10570---外星人聚会(meeting with aliens)

这道题刚开始做的时间没有思路,后来看了别人的思路后,写了自己的代码。 举例介绍:有向环 比如一组数据{5,4,3,2,1}; 如果按照正向排序,各个位置的下标为1,2,3,4,5,那么有向环为{5,1}{4,2}{3}一个3个。 思路:其实本道题就是找有向环,假如说有向环的数量为m,则需要交换的次数就为Array.size - m.同时本道题应该分为顺时针编号和逆时针编号,分别假定各个位置为

shenxingbo的专栏 562

数据仓库数据质量监控和处理方法最佳实践

指的是检查数据是否存在反常或者错误的情况,例如数值反常地过大或者过小,或者超过记录的波动值,对应的规则包括数值波动检查,最大值、最小值检查,跨表准确性等。指的是检查数据是否存在缺失的情况,这里的缺失可以是整个数据集的记录缺失,也可以是某个字段记录的缺失,对应的规则包括空值检查,表总行数检查。指的是检查数据是否符合规范,是否按照规定的格式存储,对应的规则包括正则表达式检查,字段长度检查,枚举集合检查,数值范围等。指的是检查哪些数据是重复数据或者数据的哪些属性是重复的,对应的规则例如主键唯一性检查。

大模型大数据攻城狮的专栏 899

UVa - 10570 - Meeting with Aliens

对于n个数字,调整成从大到小或者从小到大,操作数都不超过n,每一次操作至少有一个数字放到正确的位置。 枚举起点还有序列正反,求出最小的交换次数。 求交换次数的时候用贪心思想,先把1交换到1,再把2交换到2。。。

yofer张耀琦的专栏 1744

ROS & ROS2 机器人深度相机激光雷达多传感器标定工具箱

不过,多传感器标定工具箱允许通过编辑 yaml 文件来调整标定目标的参数: <repository>/mutlisensor_calibration/cfg/TargetWithCirclesAndAruco.yaml%YAML:1.0rows: 4cols: 1dt: irows: 4cols: 2dt: frows: 1cols: 12dt: fCAD 模型网格/云通过 GICP 将模型数据与分割点云对齐,用于优化检测到的目标姿态。

2506_90492529的博客 2108

POCV/SOCV 、LVF的差别

1.POCV与OCV、AOCV 为了模拟片上PVT的差异带来的影响,最早提出了OCV(On Chip Variation)给每个cell都设置一个固定的derate值,来覆盖最悲观的情况,但是随着工艺发展,设计规模增大,OCV过度的悲观开始限制性能,于是又有了AOCV(Advanced On Chip Variation),用基于depth和distance的derate来取代单一的全局的derate值,但时序收敛的过程中逻辑级数depth的变化让时序分析的时间变得非常长,由此POCV诞生了。 POCV

m0_61544122的博客 5365

UVA 10570 Meeting with Aliens

题意:没想到怎么移动才能达到最小,参考了:点击打开链接 #include #include #include using namespace std; int a[5555],b[555],n; bool mark[555]; int calcu(int cur){ int ans = 0; for (int i = 1; i <= n; i++) ma

那些年 904

Python数据可视化 Pyecharts 制作 Map 地图

大家好,我是Mr数据杨。想象一下,作为一名军师,如诸葛亮或郭嘉,'Map’就如同那战争的沙盘,兵马行动的轨迹,都需要准确的地图作为基础。‘基本设置’,就如同摆设这张战争沙盘,规定棋子的起始位置。‘数据配置选项’和’地图数据项’,就好比是军师们手中的情报,了解各路诸侯的兵力、粮草、地形等重要信息,以便于他们更好地布局。‘Demo’则代表着练兵之地,军师们可以在此基于已有数据,试验各种战术。

Mr数据杨 4万+

UVA10570 Meeting with Aliens【数学计算】

The aliens are in an important meeting just before landing on the earth. All the aliens sit around a round table during the meeting. Aliens are numbered sequentially from 1 to N. It’s a precondition of the meeting that i’th alien will sit between (i − 1)’t

海岛Blog 468

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

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

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

UVA 10570 Meeting with Aliens 【枚举+结论题】

题目链接 题意 给一串环形序列(首尾相连),可以进行交换任意两个数的操作。问最少进行多少步这样的操作能够使得整个序列的顺序正常(即从序列中的1开始,顺时针或逆时针相邻递增) 分析 首先这个题有一个简单的结论,如果要通过两两交换使得一种排列变为另一种排列,最少的方式是从最左边开始扫描一遍,若当前这个数跟目标排列不一样,就把它从后面交换过来。 那么这个题就很...

a18235146924的博客 125

pscad IEEE标准系统搭建说明

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

UVa 10570 Meeting with Aliens(思路)

题目链接:http://vjudge.net/problem/UVA-10570 大意:给你一个由1-n组成的环状序列,每次可以交换任意两个数,用最少的交换次数将其变为1-n的环状排列。 思路:可以直接枚举1所在的位置,对于每个位置,排列有顺时针排列和逆时针排列,分别计算一下即可。详见代码 #include #include #include #include #in

Interstellar_的博客 473

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

uva 10570—— Meeting with Aliens

题意:n个外星人坐在一起,然后问通过交换多少次位置可以使正向或者反向是一个有序的序列。 思路:把n个外星人延长到2*n(因为有环),然后在1的位置上放1,2的位置放2,反向的话让序列倒过来重新操作一下即可。 code: #include #include #include #include #include #include #include #include

坚持不懈 449

Meeting with Aliens UVA - 10570

循环队列相关问题的一种处理方法是将数组的长度开为原来的两倍,并且将数组复制,假设数组之前的长度是N,同时假设下标是从1开始的,那么后面的处理也只需要从1一直N,向后面处理N个数字也就可以了。同时注意到这个题目中,既可以选择某一个数字顺时针走,同时也可以逆时针走,所以我们在处理的时候也就需要处理两轮,首先是顺着处理一轮然后是逆着处理一轮。每次选择某一个点为起始点,求解出从这个点开始按照当前的方向,交

zju2016的博客 359

UVA 10570 Meeting with Aliens

大意:N个外星人围成一桌坐下,有序的排列指N在N-1与N+1中间,现在给出一个序列,问至少交换几次可以得到有序的序列。 思路:不管结果如何,我们可以假设最终的序列是以某个外星人为起点的有序序列,既然如此,我们可以构造另一个序列,把原来的外星人长度增加一倍,这样一来,原序列一定是这个构造序列的子序列。然后通过枚举,可以把最小交换次数求出来。继而解决下一个问题:如何求最小的交换次数?我们可以把1与1

Wall_F的专栏 2123

UVA10570 外星人聚会 Meeting with Aliens(排列交换 + 结论)

UVA10570 外星人聚会 Meeting with Aliens 题意: 输入1~n的一个序列 (3≤n≤500)(3\leq n\leq500)(3≤n≤500) ,每次可以交换两个整数。用最少的交换次数把排列变成1~n的一个环形排列。 思路: 枚举以每个点为1号点。每次数有多少个环cnt。ans=n-cnt #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=2e5+5; co

weixin_45722843的博客 201

UVa 10570 外星人聚会(Meeting with Aliens)

题意: 输入一个“1 - n的排列,每次可以脚环两个整数。用最少的交换次数把列变成1 - n的一个环状序列。 看这个数据量就知道啦,算法可以很暴力。于是我就很暴力 分析: 暴力暴力暴力,左一下右一下。 #include<bits/stdc++.h> #define LL long long #define INF 0X7fffffff #define ms(s) memset(s, 0...

Inuyasha__的博客 304

UVA 10570 Meeting with Aliens (枚举)

分析:枚举序列起点和升降顺序,我写的很暴力,没有什么优化的地方。。。 #include &lt;iostream&gt; #include &lt;cstdio&gt; #include &lt;cstring&gt; #include &lt;cmath&gt; #include &lt;algorithm&gt; #include &lt;map&gt; #include &lt;vect...

Insist_77的博客 249

UVA 10570 meeting with aliens

#include <map> #include <set> #include <list> #include <cmath> #include <ctime> #include <deque> #include <stack> #include <queue> #inclu...

deko2014的博客 115

uva10570 Meeting with Aliens

先证明把每次i放到i位置最后次数最少:感觉,可以,用归纳法? //在序列后再加一个相同的序列,就可以模拟用各个数字开头的情况了每个位置不对的只需要换一次54123 ,5固定->41235变成12345 任何一个数固定不变,都相当于从这种情况对应的1所在的位置开始排一遍12345.(例如54123 ,5固定->41235变成12345)所以只需要每个位置开始都判断变成123...

dengdouweng1282的博客 146

UVA - 10570 Meeting with Aliens 暴力

题目大意:有n个外星人要开园桌会议,外星人的编号由1到n,要求编号为i的外星人的相邻位置必须坐着编号为i-1和编号为i+1的外星人。 现在给出n个外星人坐在圆桌上的顺序,要求你经过最少次交换(交换是两个外星人交换所坐位置),使得所有外星人坐法都符合上诉规则。解题思路:枚举每个外星人坐的位置,假设该位置坐的必须是编号为1的外星人,然后编号从左递增或者递减,最后检查该安排需要交换几次外星人 如果该外

静静地码 1098

UVA10570 Meeting with Aliens(枚举/优化)

题目链接 1.题目大意:输入一个1-n的排列,每次可以交换任意位置的两个数,求最少将排列变成1-n的一个环状序列的交换次数 2.这个题目找不到什么规律的,也就是没有可行的算法解决,那么只能采用暴力解法,枚举每个数字开头的环状序列。简单模拟一下,不难发现每个数对应的环状序列都有两种,而且排列都可以分成两个部分,对于数字k开头的环状序列有以下两种: {k,k+1,…,n} + {1,2,…,k-...

Happig的博客 292
上一篇: uva uva 1153 - Keep the Customer Satisfied
下一篇: uva 11536 Smallest Sub-Array
LuckyqXd
博客等级 码龄12年 2粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值