codeforces 1279c
有一个栈,里面有n个元素,还有一个数组,要按数组的顺序把它们从栈中取出,取出的方式是在栈中把这个元素前面的元素取出,然后把这个元素取出,再把前面的元素放回去,放回去的时候可以重新排序,使得接下来的操作数更少,问最少需要操作几次。
思路:把每个栈中元素的最初位置记录下来,然后记录一个last值,代表前面的已经出栈的元素的最大的位置,也就是已经排好序了的元素的最大位置,如果当前需要出栈的元素的栈中位置比last小,操作数就加1,如果比last大,说明它还没有排序,就按照规则做,先出栈,再把它前面的元素入栈,同时last更新,(last应该是这个元素的位置,而不是i,一直WA)。排序的话,肯定是按照出栈的元素的顺序排的,这样就可以直接出栈。
#pragma warning(disable:4996)
#include<climits>
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<map>
#include<set>
#include<cmath>
#include<stack>
#include<queue>
#include<string>
using namespace std;
typedef long long ll;
const int INF = INT_MAX;
ll a[100005], pos[100005], b[100005];//pos记录位置
int main()
{ll T, i, n, m, ans, last;scanf("%lld", &T);while (T--){scanf("%lld%lld", &n, &m);for (i = 1; i <= n; i++){scanf("%lld", &a[i]);pos[a[i]] = i;}for (i = 1; i <= m; i++)scanf("%lld", &b[i]);ans = 0; i = 1; last = 0;//i从1开始while (i <= m){if (pos[b[i]] > last){ans += ((pos[b[i]] - i) * 2 + 1);//pos减去i,多减了一个last = pos[b[i]];//last变为现在这个数的位置,而不是i}else{ans++;//前面的已经排好序了;}i++;}printf("%lld\n", ans);}return 0;
}
codeforces 1279c相关推荐
- CodeForces 375D Tree and Queries
传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...
- 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...
- 【codeforces 812C】Sagheer and Nubian Market
[题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...
- CodeForces 获得数据
针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...
- codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...
题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...
- CodeForces 595A
题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...
- codeforces A. Jeff and Digits 解题报告
题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...
- Codeforces Round #506 (Div. 3)
Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...
- Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈)
Codeforces Round #417:E. FountainsSagheer and Apple Tree(树上博弈) 标签: codeforces 2017-06-02 11:41 29人阅读 ...
最新文章
- 关于用户升级到MacOS10.10系统后versions崩溃的问题
- 门限的限意思是什么_门限是什么意思_门限英文翻译
- V3S文件系统基本构架
- bat删除计算机用户,自动清除电脑垃圾及删除windows默认共享盘符的批处理bat
- 基于Xml 的IOC 容器-开始启动
- 使用gdb调试多进程和多线程
- Intouch使用SIDirect OIServer 连接西门子PLC S7-300
- hadoopstreaming
- Html select、option、optgroup 标签
- python网络通信传输的数据类型_Python网络编程中的网络数据和网络错误。
- Android使用Intent完成活动之间的通信
- android 取消root,彻底告别安卓刷机时代!360超级ROOT正式宣布下线:取消ROOT权限
- 华为freelace耳机修整详录
- 小象学院-人工智能机器学习
- 计算机表格性格计算,MBTI职业性格测试自动计算得分并得出分析结果.docx
- 金融类APP应该怎么做?券商APP该何去何从?
- adb导出手机应用到电脑
- 鸿蒙事业单位专业技术,事业单位专业技术岗考什么?
- 苹果a12_盘点那些你不知道的苹果a12和a10x的差距
- 什么?还在用delete删除数据《死磕MySQL系列 九》
热门文章
- auto.js 开发和学习小结 - 微信搜一搜和微信指数的脚本
- CBC中更新TChart控件
- 好好养生,身体第一,工作第二
- AndroidUtilCode工具类
- GB28181国标平台软件(包含服务器和客户端)
- 荣耀6x升级Android8省电,升级Android8.0大动作:华为、荣耀6款旧机同时开启EMUI8.0测试...
- Mockplus教程:分分钟搞定APP首页原型设计
- (五)路由器破密码和重置
- 如何去实践一个完整的数据挖掘项目?
- Unity信号干扰shader(参照崩坏3源码翻译剧情对话效果)