10.2解题报告

题目一:栈的优化

原代码:运用函数递归

由于我们知道火车出来的个数与火车总共的个数一定是一样的,所以可以用0 1来表示车辆的出入。

例如:101100 就表示进出进进出出,也就为132.

我们用ruv来表示进入的车子数,chuv表示出来的车子数,当chuv和ruv都等于撤资总数时,我们就找到了一种排列方法。当ruv小于n时,说明已经进去的车子数没到n节,还有空间继续进入车辆,我们可以写作
if(ruv<n) dfs(ruv+1,chuv);我们要保证出去的车子比进来的车子少,这样才可以符合实际的情况。所以当chuv小于ruv的时候我们可以把chuv加上一,表示可以出去车辆写作 if(chuv<ruv) dfs(ruv,chuv+1);
其实我们可以把栈想象成一个二维数组,行为ruv,列为chuv,所有ruv<chuv的坐标全部没有意义和函数的思维方法一样,我们可以把第a[i][j]个数分为两种情况,并且选择从最后一个数向前做运算,这样和我们之前的思维方法就一样了。首先将第一个数a[n][n]定义为1,表示起始值为1接着和之前一样做出当i<n和j<i的判断,最后a[0][0]所表示的值就是结果了,因为我们的行和列都是从0开始记录的。附注:
for(int i=n;i>=0;i--)
	for(int j=n;j>=0;j--){
        if(i==n&&j==n) a[i][j]=1;
	    else
        {
        if(i<n) a[i][j]+=a[i+1][j];
        if(j<i) a[i][j]+=a[i][j+1];
}
}
二:接水问题学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为1。现在有n  名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从1到n 编号,i 号同学的接水量为wi。接水开始时,1 到m   号同学各占一个水龙头,并同时打开水龙头接水。当其中某名同学j 完成其接水量要求wj 后,下一名排队等候接水的同学k马上接替j   同学的位置开始接水。这个换人的过程是瞬间完成的,且没有任何水的浪费。即j 同学第x 秒结束时完成接水,则k 同学第x+1   秒立刻开始接水。若当前接水人数n’不足m,则只有n’个龙头供水,其它m-n’个龙头关闭。现在给出n  名同学的接水量,按照上述接水规则,问所有同学都接完水需要多少秒。这一题可以直接模拟每一次都循环m个水龙头,找出时间最短的,加上下一个人接水的时间,因为在这个时间内,别人也可以接好水,最后可以找出时间最多的那一个水龙头,那么它就是总共接水需要的时间了。例如:1 2 3 4 5   有3个水龙头首先1 2 3中最少的1加上下一个4,在这段时间内,2 3接好了水,然后最少的2加上最后的5,在这期间内,3 4接好了水,最后找出时间最长的2+5,就是问题的解。我们可以先一个一个读入数字,存入一个数组,然后把m+1定义为下一个人
for(int i=1;i<=n;i++)
{
    cin>>t;
   	b[i]=t;
    s=m+1;
     }然后进行中途的交换
while(n>0)
     {
            for(int i=1;i<=m;i++)
            if(b[i]<b[minv]) minv=i;
            b[minv]+=b[s];
            s++;
            n--;
    }minv记录时间最短的那一个数,s++是因为下一个人需要退后,n--是为了判断是不是所有人都接上水。最后只需要再找出最大数输出即可。
for(int i=1;i<m;i++)
    for(int j=i;j<=m;j++){
    	if(b[i]>b[j]){
    		int t=b[i];
    		b[i]=b[j];
    		b[j]=t;
    	}
    }
    cout<<b[m];2
 
 
 
时间: 2024-11-05 06:26:33

10.2解题报告的相关文章

2019.10.03解题报告

总体来说能打的暴力都打了 期望\(100 + 40 + 30 = 170\) 实际\(100 + 40 + 10 = 180\) 数据良心(其实是数据太水惹) T1 第一眼觉得就是要找规律,然后直接找找不出来,所以用暴力搜一下 #include <queue> #include <cstdio> #include <cstring> #include <iostream> using namespace std; const int N = 2011; in

10.15解题报告

D:[基本算法-贪心算法]删数问题 描述 键盘输入一个高精度的正整数n(<=240位),去掉其中任意s个数字后剩下的数字按原左右次序将组成一个新的正整数.编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小. 这道题目我们可以用贪心法则来攻克 既然要每次删除一个数,那我们就需要让每一次都做出一个最好的选择,这样最后我们也就会得到最佳方案 如何每一次都作出最好的选择,也就是每一次都删除第一个比后面数字大得数,因为如果n比n-1大的话,后面再出现此类情况,我们可以保证n在最大的数位上,于是

10.30 NFLS-NOIP模拟赛 解题报告

总结:今天去了NOIP模拟赛,其实是几道USACO的经典的题目,第一题和最后一题都有思路,第二题是我一开始写了个spfa,写了一半中途发现应该是矩阵乘法,然后没做完,然后就没有然后了!第二题的暴力都没码QAQ 现在我来写解题报告了,有点饿了QAQ.. 第一题 题目 1: 架设电话线 [Jeffrey Wang, 2007] 最近,Farmer John的奶牛们越来越不满于牛棚里一塌糊涂的电话服务,于 是,她们要求FJ把那些老旧的电话线换成性能更好的新电话线.新的电话线架设 在已有的N(2 <=

2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告

2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告 勘误1:第6题第4个 if最后一个条件粗心写错了,答案应为1580. 条件应为abs(a[3]-a[7])!=1,宝宝心理苦啊.!感谢zzh童鞋的提醒. 勘误2:第7题在推断连通的时候条件写错了,后两个if条件中是应该是<=12 落了一个等于号.正确答案应为116. 1.煤球数目 有一堆煤球.堆成三角棱锥形.详细: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形). -. 假设一共

[noip2011]铺地毯(carpet)解题报告

最近在写noip2011的题,备战noip,先给自己加个油! 下面是noip2011的试题和自己的解题报告,希望对大家有帮助,题目1如下 1.铺地毯(carpet.cpp/c/pas) [问题描述]为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有n 张地毯,编号从1 到n.现在将这些地毯按照编号从小到大的顺序平行于坐标轴先后铺设,后铺的地毯覆盖在前面已经铺好的地毯之上.地毯铺设完成后,组织者想知道覆盖地面某个点的最上面的那张地毯的

ACdream 1203 - KIDx&#39;s Triangle(解题报告)

KIDx's Triangle Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) Submit Statistic Next Problem Problem Description One day, KIDx solved a math problem for middle students in seconds! And than he created this problem. N

解题报告 之 CodeForces 91B Queue

解题报告 之 CodeForces 91B Queue Description There are n walruses standing in a queue in an airport. They are numbered starting from the queue's tail: the 1-st walrus stands at the end of the queue and the n-th walrus stands at the beginning of the queue.

解题报告 之 POJ1226 Substrings

解题报告 之 POJ1226 Substrings Description You are given a number of case-sensitive strings of alphabetic characters, find the largest string X, such that either X, or its inverse can be found as a substring of any of the given strings. Input The first li

解题报告 之 UVA563 Crimewave

解题报告 之 UVA563 Crimewave Description Nieuw Knollendam is a very modern town. This becomes clear already when looking at the layout of its map, which is just a rectangular grid of streets and avenues. Being an important trade centre, Nieuw Knollendam a