KeyFC欢迎致辞,点击播放
资源、介绍、历史、Q群等新人必读
KeyFC 社区总索引
如果你找到这个笔记本,请把它邮寄给我们的回忆
KeyFC 漂流瓶传递活动 Since 2011
 

NOIP竞赛结束大家感觉如何

[ 9479 查看 / 37 回复 ]

回复:NOIP竞赛结束大家感觉如何

以下引用LOVEHINA-AVC在2005-11-20 23:34:26的发言:


因为那个要对应
push ebp
mov ebp,esp
sub esp,XXX(add esp,-XXX)
在进入函数区块后首先进行局部变量栈空间的划分

PS:C也是高级语言


C是结构化汇编<------------这可不是偶说的,是C++二号人物说的^_^
TOP

回复:NOIP竞赛结束大家感觉如何

这题直接用一个字符串做高精度吧-v-b

反正无论C还是Pascal都可以直接作为字符数组,C似乎更容易一些……
AJI,舰狗
TOP

回复:NOIP竞赛结束大家感觉如何

公布一下上次出的那道题的参考答案(VC6.0,没有考虑输入格式):
基本思路是用递归。
原题 http://keyfc.net/bbs/disp.asp?titleid=12274&page=3

#include <stdio.h>
#include <memory.h>
#include <algorithm>

#define MAXINT 32767
#define MAX_CRACKERS 200
#define MAX_BOXES 10

int cache[MAX_CRACKERS+1][MAX_CRACKERS+1][MAX_BOXES+1];
using std::_cpp_min;
using std::_cpp_max;

/**    @brief 计算函数
*    @param start [in] 已知当Mailbox里的爆竹少于start个时,Mailbox不会炸坏
*    @param end [in] MailBox无法装入多于end个爆竹,或者已知装入多于end个爆竹会炸毁
*    @param boxes [in] 剩余可用的Mailbox个数
*    @return 最坏情况下最少需要的爆竹数
*/
int getmin(const int start,const int end,const int boxes)
{
    if(start>end) // 不需要试验
        return 0;
    if(start==end) // 只需要用start=end个爆竹试验一次
        return start;
    if(cache[start][end][boxes]==-1)
    {
        int s=MAXINT;
        if(boxes==1) // 只有一个Mailbox,只能逐一增加
        {
            s=0;
            for(int i=start; i<=end; i++) s+=i;
        }
        else
        {
            for(int i=start; i<=end; i++) // 在Mailbox中放置i个爆竹
            {
                s=_cpp_min(s, i+ //加上已经用去的i个爆竹
                    _cpp_max( //取两种情况所需爆竹数的较大值
                    getmin(start,i-1,boxes-1), //如果炸毁,boxes减少1,递归计算
                    getmin(i+1,end,boxes) //如果没有炸毁,boxes不变,递归计算
                    ) );
            }
        }
        cache[start][end][boxes]=s;
    }
    return cache[start][end][boxes];
}

/** @brief 主函数 */
int main(int argc, char* argv[])
{
    int k,m;
    memset(cache,-1,sizeof(cache)); //初始化递归缓存
    printf("k(boxes)=");
    scanf("%d",&k);
    printf("m(max firecracks)=");
    scanf("%d",&m);
    printf("%d\n",getmin(1,m,k)); //计算
    return 0;
}
KEYFC第二届版杀 - 川澄 舞
TOP

回复:NOIP竞赛结束大家感觉如何

我在提高组,用PASCAL,初次参赛感觉不错,分数好象是有且只有一个0~~
跟我一同参赛的高年级同学觉得这次题目比较难。
TOP

回复:NOIP竞赛结束大家感觉如何

以下引用frank在2005-11-22 16:16:00的发言:
我在提高组,用PASCAL,初次参赛感觉不错,分数好象是有且只有一个0~~
跟我一同参赛的高年级同学觉得这次题目比较难。


同感,感觉只有1、3是可以做的题,2我光往动态规划想了,无果....4感觉如果要做全的话时间再给我13个小时都不够
TOP

回复:NOIP竞赛结束大家感觉如何

提高的题……

2难道不是DP么?

PS:还没有03年强……

PS2:还是觉得第3题最好-v-b,构造的东西....
AJI,舰狗
TOP

回复:NOIP竞赛结束大家感觉如何

以下引用粘土火星在2005-11-23 17:32:19的发言:
提高的题……

2难道不是DP么?

PS:还没有03年强……

PS2:还是觉得第3题最好-v-b,构造的东西....


其实我2也觉得应该要动态的,但实在没想出什么方法,强人说直接搜索+剪枝就够了...
还是3好,没那么多技巧,比较拼思路~程序比1还简单
TOP

回复:NOIP竞赛结束大家感觉如何

多明显的DP……………………

甚至比去年那个还明显,今年的题还是不错的……作为NOIP来讲……
AJI,舰狗
TOP