当前位置: 首页 > news >正文

义乌设计网站/长沙百度推广运营公司

义乌设计网站,长沙百度推广运营公司,网站开发找哪个,wordpress移动端底部导航栏P6704 [COCI2010-2011#7] GITARA 详细题解 题目传送门 题目背景 Darko 有一个想象的外星朋友,他有十亿根手指。外星人快速拿起吉他,在网上找到一段简单的旋律并开始弹奏。 这个吉他像寻常一样有六根弦,令其用 1 到 6 表示。每根弦被分成 …

P6704 [COCI2010-2011#7] GITARA 详细题解

题目传送门

题目背景

Darko 有一个想象的外星朋友,他有十亿根手指。外星人快速拿起吉他,在网上找到一段简单的旋律并开始弹奏。

这个吉他像寻常一样有六根弦,令其用 1 到 6 表示。每根弦被分成 P 段,令其用 1 到 P表示。

旋律是一串的音调,每一个音调都是由按下特定的一根弦上的一段而产生的(如按第 4弦第 8段)。如果在一根弦上同时按在几段上,产生的音调是段数最大的那一段所能产生的音调。

例:对于第 3根弦,第 5段已经被按,若你要弹出第 7段对应音调,只需把按住第 7段,而不需放开第 5 段,因为只有最后的一段才会影响该弦产生的音调(在这个例子中是第 7 段)。类似,如果现在你要弹出第 2段对应音调,你必须把第 5 段和第 7 段都释放。

请你编写一个程序,计算外星人在弹出给定的旋律情况下,手指运动的最小次数。

题目描述

你有一个 6×P 的矩阵 A,初始状态皆为 0。

对于所有要求 (i,j)

你需要满足要求:

  1. 此时 Ai,jA_{i,j}Ai,j状态为 1。
  2. 对于 Ai,j+k(k>0)A_{i,j+k} (k>0)Ai,j+k(k>0)状态为 0。

你在满足要求的情况下需要求状态转换最小次数。

输入格式

第一行包含两个正整数 n ,P。它们分别指旋律中音调的数量及每根弦的段数。

下面的 n 行每行两个正整数 i,j,分别表示能弹出对应音调的位置——弦号和段号,其为外星人弹奏的顺序。

输出格式

一个非负整数表示外星人手指运动次数最小值。

解题思路:

题目要求高段可以直接按下,而低段必须松开该弦上按着高段的手指才能按下。所以我们把每根弦看做一个,把整个琴看做栈数组,并且特别注意一下这里的栈操作其实就是单调栈的操作。
{1.栈非空{1.弹出栈中更高段并统计数加一,直到栈空或者没有更高段。2.栈空?{1.空,直接压栈并统计数加一。2.非空,栈顶是否为更低段?{1.为更低段,压栈并统计数加一2.为同一段,不做任何处理2.栈空:直接压栈并统计数加一。\begin{cases} 1.栈非空\begin{cases} 1.弹出栈中更高段并统计数加一,直到栈空或者没有更高段。\\ 2.栈空?\begin{cases} 1.空,直接压栈并统计数加一。\\ 2.非空,栈顶是否为更低段?\begin{cases} 1.为更低段,压栈并统计数加一\\ 2.为同一段,不做任何处理\\ \end{cases} \end{cases} \end{cases}\\ 2.栈空:直接压栈并统计数加一。 \end{cases} 1.1.2.1.2.{1.2.2.
这里再放一个单个琴弦的动图来做理解:

在这里插入图片描述

附上代码:

#include<bits/stdc++.h>//又是STL催肥机
using namespace std;#define ll long long
#define INF 0x3f3f3f3fstack<int> st[7];//创建栈数组
int cnt;//统计手指活动次数int main(){ios::sync_with_stdio(0);cin.tie(0);int n,p;cin >> n >> p;//输入音调数与弦段数while(n--){int i,j;cin >> i >> j;//输入第几根琴弦的第几段if(st[i].size()){//如果栈非空while(st[i].size() && st[i].top() > j){//在栈非空的情况下,弹出所有更高段,并统计数加一st[i].pop();cnt++;}if(st[i].empty() || j > st[i].top()){//如果栈空,或者栈顶的段低于要演奏的段,则压栈,统计数加一st[i].push(j);cnt++;}}else{//如果栈空,则直接按下,压栈,统计数加一st[i].push(j);cnt++;}}cout << cnt;//输出结果return 0;//保持好习惯
}
http://www.jmfq.cn/news/5199481.html

相关文章:

  • 沈阳手机网站制作/债务优化是什么意思
  • 四川网站制作/东莞seo项目优化方法
  • 南安网站定制/seo门户网站优化
  • 免费做宣传单页的网站/优化营商环境工作开展情况汇报
  • 网站域名服务器一年多少钱/网络推广应该怎么做啊
  • 天津建设局网站/seo关键词排名优化怎么样
  • wordpress如何修改首页/宁波关键词优化企业网站建设
  • 高端网站制作软件/产品营销策略有哪些
  • wordpress首页代码/seo营销排名
  • 做网站失败/做网站需要多少钱
  • 公司网站建设注意事项/大数据培训班需要多少钱
  • 赤壁专业建站公司/苏州百度
  • 建个网站 费用/软文推广发布平台
  • 公众号做淘宝客接入手机网站/搜索引擎调词平台哪个好
  • 做暧小视频xo网站/产品推广软文300字
  • 搜狗竞价绑定网站要求/社群推广平台
  • wix网站怎么做/太原百度推广排名优化
  • 网站上怎样做超链接/个人网站建设
  • 夜雨直播nba/网站优化靠谱seo
  • 网站设计 成都/深圳十大教育培训机构排名
  • 相亲网站做期货现货贵金属的人/网络seo推广
  • linux 配置网站域名/找客户资源的软件
  • 鄂州网站推广优化技巧/哈尔滨优化推广公司
  • 增城移动网站建设/搜索推广出价多少合适
  • 网页设计教程 罗云芳吴黎/seo专业培训费用
  • 专业网站建设微信官网开发/安卓优化软件
  • 做旅游网站的工作流程图/网站推广互联网推广
  • 个人网站怎么做扫码支付/绍兴百度seo排名
  • 网站备案营业执照/中国工商业联合会
  • 厦门做网站的公司有哪些/win7优化软件