NY325zb的生日

题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=325


深搜的思想,(剪枝非常重要!!!dfs(i + 1) 就是剪枝了)我的思路是边界分为三种情况,以总重量的一半t为基准

1.如果搜到的重量小于t,那就更新最小重量差

2.如果相等的话,说明这个西瓜能平分了,然后就看总重量了

3.如果大于,更新最小重量差,然后renturn ;


代码:


#include <cstdio>
#include <cstring>

#define inf 0x3f3f3f3f
int v[25];
int a[25];
int sum;
int t;
int ans;
int n;
void dfs(int cur,int w)

{
    if(w < t)
    {
         if(sum - w * 2 < ans)
            ans = sum - w * 2;
    }
    else if(w == t)
    {
        if(sum % 2)
            ans = 1;
        else
            ans = 0;
        return ;
    }
    else if(w > t)
    {
        if(2 * w - sum < ans)
            ans = 2 * w - sum;
        return ;
    }
    for(int i = cur;i < n;++i)
    {
        if(!v[i])
        {
            v[i] = 1;
            dfs(i + 1,w + a[i]);
            v[i] = 0;
        }
    }
}

int main()

{
    while(~scanf("%d",&n))
    {
        memset(v,0,sizeof v);
        ans = inf;
        sum = 0;
        for(int i = 0;i < n;++i){
            scanf("%d",&a[i]);
            sum += a[i];
        }
        t = sum / 2;
        dfs(0,0);
        printf("%d\n",ans);
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ny8b062e是一种常见的微控制器芯片,常用于单片机系统的控制和嵌入式系统的开发。本篇开发笔记汇总了在使用ny8b062e芯片进行嵌入式系统开发中的一些个人经验和问题解决方案。 首先,在ny8b062e芯片的开发过程中,需要选择合适的开发工具和编程语言。常用的开发工具包括keil、IAR等。同时,为了方便代码的编写和调试,可以采用C语言进行程序开发。 其次,在ny8b062e芯片的硬件设计中,需要注意芯片的引脚分配和电路设计。具体来说,需要考虑芯片的供电电压、信号输入输出接口、外部晶振设计以及串口通信等因素。 最后,在系统开发的过程中,需要加强代码的优化和调试。为了提高系统的执行效率、减少资源占用和消耗,可以采用基于嵌入式系统的优化算法,如代码压缩、空间换时间等。同时,在程序调试过程中,可以通过使用虚拟仿真器或硬件调试器等工具进行跟踪和分析,从而快速定位代码错误和解决问题。 综上所述,通过合理选择开发工具、注意硬件设计和加强代码优化与调试等措施,可以有效提高ny8b062e芯片嵌入式系统开发的效率和质量。 ### 回答2: ny8b062e是一个标准的8位微控制器,由NEC(现在被RL78系列所替代)生产。ny8b062e有许多特性,包括具有4 KB的程序存储器和256字节的数据存储器,还有8位定时器和4个中断源。 ny8b062e可以用于许多应用程序,包括低功耗应用程序和电池供电系统。除此之外,ny8b062e还可以用于家用电器、自动化和工控系统、卫生医疗、车载互联网和无线电通信等领域。 在进行ny8b062e的开发时,需以下步骤: 1.选择开发工具。可以使用C语言编写ny8b062e应用程序,同时还需要选择一个完美的开发工具来支持代码的编译、调试和下载。 2.编写代码。根据应用程序需求,撰写ny8b062e应用程序并进行调试。可以使用数据手册、示例代码或其他参考资料来帮助编写代码。 3.下载代码。使用选择的开发工具将代码下载到ny8b062e微控制器中。此时需要选择正确的下载方式,确保代码被正确地加载到芯片中。 4.测试代码。在ny8b062e微控制器中运行代码,并根据测试结果对代码进行修改。 5.集成其他硬件。集成其他必要的硬件,例如传感器、电源等,确保完整的应用程序能够正常运行。 总的来说,ny8b062e是一个功能全面的微控制器,可以应用于许多不同的领域。进行ny8b062e开发时需要选择正确的开发工具和正确的应用程序,以确保代码的正确性和应用程序的成功。 ### 回答3: ny8b062e是一款8位单片机,采用CISC指令集架构,由杭州南天电子有限公司生产。在实际应用中,ny8b062e可广泛用于家用电器、工业控制等场合,具有功耗低、集成度高、可靠性强等优点。 ny8b062e开发的第一步是准备开发环境,需要使用ny8studio IDE以及相关的开发工具和驱动程序。在具备基本开发条件的前提下,开发人员可以根据自己的需求进行芯片的程序编写和调试。 ny8b062e使用的编程语言是C语言,开发者可采用C语言的基本语法和数据类型进行程序的编写。同时,ny8b062e还支持多种通讯接口,如IIC、SPI、UART等,开发者可根据应用需求选择相应的接口实现外设的控制。 除了软件编程外,ny8b062e还需要进行硬件设计和布局。由于ny8b062e引脚较少,需要进行引脚复用和器件选型等工作。同时,由于ny8b062e的封装和工作电压等特性不同,也需要注意选择合适的器件和PCB设计方案。 总之,ny8b062e的开发需要开发人员具有扎实的C语言编程能力、硬件设计经验和良好的沟通能力,以保证芯片在应用中的可靠性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值