noip的一道堆栈顺序题(没读懂题)

作者&投稿:尧虽 (若有异议请与网页底部的电邮联系)
一道备战noip的题目。不用完整程序,只要方法。~

首先,真正有意义的数字就那么2000个,因为我们每次都肯定是升到或者降到以前的某个数(这是废话)。所以离散化一下就好了。
第二,就是dp了,F[i,j]=min{f[i-1,k]+|a[i]-a[k]|} (a[k]>a[j]) 或者是(a[k]<a[j])必须一直保证。
F[i,j]表示的是如果将第i个楼梯搞成a[j]高的话,我们需要的最小力气。这题就解完了,但是时间不够,为O(n3)。
第三,就是优化了,我们发现,min{f[i-1,k]}是瓶颈,怎么办呢,把他预处理出来,g[i,j]=min{f[i,k]}(k<j),这样时间为O(n2),这道题就完美解决了。
闲着无聊,瞎写的,有错误地方请指出,太明显的就自己理解好了。
还有这道是你们学校自己出着玩的吧,不应该出到第三题难度,第二题比较合适。题目别太水了。

解题步骤:
1、仔细阅读文字解释,理解题意和提供的解题思路
2、根据问题的求解要求,了解输入、输出内容和问题处理方法
3、先阅读主程序,了解输出变量和输出要求以及主程序中需要调用的过程或函数是哪些。
4、阅读过程或函数,了解其完成的功能
5、填空方法:一般从主程序最后输出要求,反推主程序中的变量填写或表达式、语句等的书写
6、根据主程序参数与子程序参数传递关系,填写子程序的变量,根据子程序需要完成的功能,完成子程序填空
7、填写完毕,再将程序整个阅读、执行一遍,看能否完成问题提出的要求。

就是你画一个栈,然后进行“进栈,出栈,进栈,进栈,出栈,出栈”操作。
过程如下:1.进栈:表示把1放进栈里面
2.出栈:栈顶元素1出栈,现在栈又变成空的了
3.进栈:2进栈,现在栈里有一个元素2
4.进栈:3进栈,现在有两个元素2和3,2在栈底,3在栈顶
5.出栈:栈顶元素3出栈,栈里面剩下一个元素2
6.出栈:最后一个元素2出栈
结束。然后看出栈的序列是:1,3,2,所以选B


始兴县18784725201: noip的一道堆栈顺序题(没读懂题) -
空田肝必: 就是你画一个栈,然后进行“进栈,出栈,进栈,进栈,出栈,出栈”操作.过程如下:1.进栈:表示把1放进栈里面2.出栈:栈顶元素1出栈,现在栈又变成空的了3.进栈:2进栈,现在栈里有一个元素24.进栈:3进栈,现在有两个元素2和3,2在栈底,3在栈顶5.出栈:栈顶元素3出栈,栈里面剩下一个元素26.出栈:最后一个元素2出栈结束.然后看出栈的序列是:1,3,2,所以选B

始兴县18784725201: 一道简单noip题,偶不懂~ -
空田肝必: 应该在9号格中吧.线性探测法:如果在t位置上发生冲突,就从t+1位置开始顺序查找hash表,直至找到最近的一个空位,把数据放进去.具体如下:2 % 13 = 2 ---2放在第2格8 % 13 = 8 ---8放在第8格31 % 13 = 5 ---31放在第5格20 % 13 = 7 ---20放在第7格19 % 13 = 6 ---19放在第6格18 % 13 = 5 ---18本应放在第5格,但第5格已经放入31,则按线性探测法探测发现第6、第7、第8格都已放入数据,则最近的一个空格是9,所以18放入第9格.53 % 13 = 1 ---53放在第1格27 % 13 = 1 ---27放在第2格(原因同上)

始兴县18784725201: 有一个NOIP题目,我大部分都对了.可是有一个冒泡排序错误,请高手解答.谢谢,很急 -
空田肝必: 冒泡排序时间复杂度是标准的O(n^2),20万个数就是400亿次,超时了(NOIP基本上一亿次操作是可行的) 但这道题你这么做用快排也过不了,因为每次寻找一遍是否统计过太费时间了.思路是把所有的数输入进去,然后快排,然后直接输出....

始兴县18784725201: int i,j,m[ ]={2,3,5,7,13} 一道NOIP题目 -
空田肝必: i=0,m[i]=2 ,t=2 , (t*2-1)*t=6 i=1,m[i]=3 ,t=4 , (t*2-1)*t=28 i=2,m[i]=5 ,t=16 , (t*2-1)*t=496 i=3,m[i]=7 ,t=64 , (t*2-1)*t=8128 i=4,m[i]=13,t=4096, (t*2-1)*t=33550336

始兴县18784725201: NOIP C语言的一道题目 -
空田肝必: 输出9734526是如何进行循环的?简单的说:它是由递归调用产生的,分为进栈与出栈两部分,进栈是6、2、5、4、3、7、9一个一个进栈,由于栈一种“先进后出”的单向表,所以,出栈也只能9、7、3、4、5、2、6一个一个出栈.

始兴县18784725201: 一个noip的问题 -
空田肝必: 简单地说就是一个类似对称的关系,如果你发现某一个备选答案,后进栈的还没出栈,先进栈的出栈了那么这个答案就是错了.比如答案E,在e出栈的时候,f还未出栈,故E不对————————————————栈就是可以一个元素进后,可以接着进行输出的表:他的意思多半指的是,最近一个进栈的元素,就是下一次出栈的元素.————————————————把各个答案项目转换成进出进出这样的结构,是怎么转换的呢??关于这个,就是七进七出嘛,进都是按照a~g的顺序,出的顺序可以不同,但是一定要合理啊,就是一定要找到这样一个顺序.

始兴县18784725201: 这道NOIP题目,参考答案有误是吗?求人解释. -
空田肝必: 16. 处理器A每秒处理的指令数是处理器B的2倍.某一特定程序P分别编译为处理器A和处理器B的指令,编译结果处理器A的指令数是处理器B的4倍.已知程序P的算法时间复杂度为O(n2),如果处理器A执行程序P时能在一小时内完成的输入规模为n,则处理器B执行程序P时能在一小时内完成的输入规模为(B ).A. 4 * n B. 2 * n C. n D. n / 2 E. n / 4 人家的题目似乎是这样的,你这个题目是不是山寨的.

始兴县18784725201: 一道NOIP的初赛问题求解 -
空田肝必: 1~13是第一圈,第一圈完了又从1开始到13,即14~26第二圈,以此类推……所以答案是N%13,但要注意13的倍数的时候不是0而是13#include<iostream>using namespace std;int main(){ int n; cin >> n; if (n%13==0) cout << "13" << endl; else cout << n%13 << endl; return 0;}

始兴县18784725201: 一道NOIP试题
空田肝必: NOIP问题求解经常考数学里的排列组合内容,建议可以专项复习下. 提供两种思路: 1、先往每个盒子里放一个球,有C(7,2)中情况,然后剩下三个自由组合. 2、用“插板方法”:七个人成为一个环,然后插入板子分割成四部分. 解法一:递...

始兴县18784725201: 关于noip2006年复赛的一道题目????? -
空田肝必: 要加油啊,这可是送分题 思路:边度边去重,读进去的如果已经存在了就不读,排序的话,快排,选择,冒泡看那个顺眼选哪个. program random; var a:array[1..1000]of longint; n,m,i,j,z,num,min,minp:longint; flag:boolean; begin assign(input,'...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网