题目链接

microhhh的回城

解题思路

这题挺有意思的。本来寻思放在\(DS\)第一次练习赛应该不会很难吧,结果愣是卡在数据范围上写不出来。

然后暴力过掉了,但是用了\(1019ms\)。感觉可以继续优化。(放一下暴力代码,不解释了)

#include<stdio.h>
#include<string.h>
int n,m;
char map[10010][10010];//char防止卡空间
int main(){
int i,T,j,x,c,b,l,k;
scanf("%d",&T);
for(k=1;k<=T;k++){
printf("Case %d #:",k);
memset(map,0,sizeof(map));
scanf("%d%d%d",&n,&m,&l);
for(i=0;i<m;i++){
scanf("%d%d",&c,&b);
map[c][b]=1;
map[c+1][b]=2;
}
for(i=0;i<n;i++){
x=i;
for(j=1;j<=l;j++){
if(map[x][j]==1)x++;
else if(map[x][j])x--;
}
printf(" %d",x);
}
printf("\n");
}
return 0;
}

又在想如果在暴力模拟的时候记录一下每列的头结点,可以进行二分查找,复杂度会下来一个\(logn\)。

码量略大,不过优化了不少。代码这里就不放了。

然后突然想到其实这就是一个交换终点的问题。从下面向上每一条边都对应一次终点的交换,去掉重边即可。\(7msAC\)。

AC代码

#include<cstdio>
#include<algorithm>
int n,m,l;
struct Path{
int c,k;
bool operator<(const Path&b)const{return k>b.k||(k==b.k&&c<b.c);}
}e[100010];
int pre[10010],end[10010],T,i,j,p,q,t;
int main(){
scanf("%d",&T);
for(j=1;j<=T;j++){
scanf("%d%d%d",&n,&m,&l);
for(i=0;i<m;i++)scanf("%d%d",&e[i].c,&e[i].k);
std::sort(e,m+e);
for(i=0;i<n;i++)pre[i]=i;
for(i=0;i<m;i++){
p=e[i].c,q=p+1;
if(i&&e[i].c==e[i-1].c&&e[i].k==e[i-1].k);//去重
else t=pre[p],pre[p]=pre[q],pre[q]=t;
}
printf("Case %d #:",j);
for(i=0;i<n;i++)printf(" %d",pre[i]);
putchar('\n');
}
return 0;
}

BuaacodingT141 microhhh的回城 题解(模拟)的更多相关文章

  1. Blocked Billboard II题解--模拟到崩溃的模拟

    前言 比赛真的状态不好(腐了一小会),导致差点爆0. 这个题解真的是在非常非常专注下写出来的,要不然真的心态崩. 题目 题目描述 奶牛Bassie想要覆盖一大块广告牌,她在之前已经覆盖了一小部分广告牌 ...

  2. PAT甲级1017题解——模拟排序

    题目分析: 本题我第一次尝试去做的时候用的是优先队列,但是效率不仅代码量很大,而且还有测试样例过不去,很显然没有找到一个好的数据结构来解决这道题目(随着逐渐的刷PAT甲级的题会发现有时选择一个好的解题 ...

  3. 洛谷P5020 货币系统 题解 模拟

    题目链接:https://www.luogu.org/problem/P5020 这道题目是一道模拟题,但是又有一点多重背包的思想在里面. 首先我们定义一个 vis[i] 来表示和为 i 的情况在之前 ...

  4. 洛谷P5019 铺设道路 题解 模拟/贪心基础题

    题目链接:https://www.luogu.org/problemnew/show/P5019 这道题目是一道模拟题,但是它有一点贪心的思想. 我们假设当前最大的深度是 \(d\) ,那么我们需要把 ...

  5. CF1B.Spreadsheets(电子表格) 题解 模拟

    作者:zifeiy 标签:模拟 题目出处:Spreadsheets 题目描述 在流行的电子表格系统中(例如,在Excel中),使用如下计算方式来对列号进行计算. 第1列对应A,第2列对应B,--,第2 ...

  6. 洛谷 P2482 loj #2885 [SDOI2010]猪国杀 题解【模拟】【贪心】【搜索】

    好玩的模拟题. 以后要经常写模拟题鸭 题目描述 游戏背景 <猪国杀>是一种多猪牌类回合制游戏,一共有\(3\)种角色:主猪,忠猪,反猪.每局游戏主猪有且只有\(1\)只,忠猪和反猪可以有多 ...

  7. Codeforces Round #271 (Div. 2)题解【ABCDEF】

    Codeforces Round #271 (Div. 2) A - Keyboard 题意 给你一个字符串,问你这个字符串在键盘的位置往左边挪一位,或者往右边挪一位字符,这个字符串是什么样子 题解 ...

  8. Intel Code Challenge Elimination Round (Div.1 + Div.2, combined) A B C D 水 模拟 并查集 优先队列

    A. Broken Clock time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  9. 【bzoj1150】[CTSC2007]数据备份Backup 模拟费用流+链表+堆

    题目描述 你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份.然而数据备份的工作是枯燥乏味的,因此你想设计一个系统让不同的办公楼彼此之间互相备份,而你则坐在家中尽享计算机游戏 ...

随机推荐

  1. Linux自带神器logrotate详解

    Linux自带神器logrotate详解 散尽浮华 运维 3天前   作者:散尽浮华 链接:https://www.cnblogs.com/kevingrace/p/6307298.html 对于 L ...

  2. ArcMobile的CoordinateCollection在逆时针添加点时自动调整节点顺序的问题

    为了使用ArcMobile实现量测功能,LZ自定义了一个MapGraphicLayer用于绘图,代码如下: using System.Drawing; using ESRI.ArcGIS.Mobile ...

  3. python argparse (更新中)

    action='store_true' 例如 parser.add_argument("--generate_text_embedding", action='store_true ...

  4. NIST随机数测试软件安装与使用 && igamc:UNDERFLOW

    https://csrc.nist.gov/ https://csrc.nist.gov/projects/random-bit-generation/documentation-and-softwa ...

  5. win10安装CUDA CUDNN tensorflow-gpu 1.14

    #1 安装anaconda 官网下载安装即可.python3.7版本 #2 安装CUDA CUDNN   tensorflowgpu1.14 对应CUDNN 7.6.1 CUDA 10.0 注意ten ...

  6. HHVM的全称是"HipHop for PHP",开放源代码。采用PHP许可证授权!

    http://hhvm.com/ https://github.com/xgqfrms/hhvm 什么是HHVM高性能服务器? HHVM是由Facebook公司出品的高性能开源服务器,用来执行hack ...

  7. es6 curry function

    es6 curry function // vuex getters export const getAdsFilterConfig = (state) => (spreader) => ...

  8. Versatile Python 3.x

    Versatile Python 3.x TryPython Python 3.8.0 (default, Nov 14 2019, 22:29:45) [GCC 5.4.0 20160609] on ...

  9. ES2021 & Pipeline operator (|>) / 管道运算符 |>

    ES2021 & Pipeline operator (|>) / 管道运算符 |> demo "use strict"; /** * * @author xg ...

  10. kahoot

    kahoot Make learning awesome! https://kahoot.it/ https://kahoot.com/ 我们的平台可让您在几分钟内轻松创建,共享和玩学习游戏或琐事测验 ...