U盘量产检查闪存编码失败_北信源安全u盘忘记密码

U盘量产检查闪存编码失败_北信源安全u盘忘记密码没什么特殊的想法就是看自己很久没有更新关于题解类的文章了而已(其实这是我好久之前做的,只是把它从洛谷博客搬到了这里而已)题目首先分析题目要二分他长成这个亚子太二分了所以就要二分最好是先排一下序吧这样我们在输入的时候就能顺便处理出l和r的值,考虑我们二分的是一个接口的大小,所以我们的答案肯定是在最大的接口和最小的接口之间啊,所以这样做是可…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

没什么特殊的想法

就是看自己很久没有更新关于题解类的文章了而已

(其实这是我好久之前做的, 只是把它从洛谷博客搬到了这里而已)

题目

首先分析题目要二分

U盘量产检查闪存编码失败_北信源安全u盘忘记密码

 

 他长成这个亚子太二分了

所以就要二分

最好是先排一下序吧

这样我们在输入的时候就能顺便处理出l和r的值, 考虑我们二分的是一个接口的大小, 所以我们的答案肯定是在最大的接口和最小的接口之间啊, 所以这样做是可行的, 而且会让我们的程序跑的更快一些。

然而并没有什么卵用。

and 关于二分边界问题, 可以用一个ans来储存答案

一篇很好的关于边界问题的文章

然后check函数跑一遍01背包就好啦

The Last:

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
const int N = 1100;
int n, p, s, w[N], v[N], l = N, r, mid, ans = -1, f[N];
bool check(int x) {
    memset (f, 0, sizeof (f));
    for(int i = 1; i <= n; i++) 
        if (w[i] <= x)
            for(int j = s; j >= w[i]; j--)
                f[j] = max(f[j], f[j - w[i]] + v[i]);
    if (f[s] < p) return false;
    return true;
}
int main() {
    scanf("%d%d%d", &n, &p, &s);
    for(int i = 1; i <= n; i++) {
        scanf("%d%d", &w[i], &v[i]);
        if(w[i] > r) r = w[i];
        if(w[i] < l) l = w[i];
    }
    while(l < r) {
        mid = (l + r) >> 1;
        if(check(mid)) {
            ans = mid;
            r = mid;
        }
        else l = mid + 1;
    }
    if(ans != -1) 
        printf("%d\n", ans);
    else printf ("No Solution!\n");
    return 0;
}

谢谢收看, 祝身体健康!

 

转载于:https://www.cnblogs.com/yanxiujie/p/11609867.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/182792.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 185 MySQL中TIMESTAMPDIFF和TIMESTAMPADD函数的用法

    185 MySQL中TIMESTAMPDIFF和TIMESTAMPADD函数的用法https://blog.csdn.net/zmxiangde_88/article/details/8011661SQL里面怎么用呢TIMESTAMPDIFF(DAY,'”.date(‘Y-m-d’,$nowtime).”‘,from_unixtime(birthday_time,’%Y-%m-%d’))=1生日的前一天发短信,送祝福…

    2022年5月16日
    38
  • CLion linux激活码【中文破解版】

    (CLion linux激活码)好多小伙伴总是说激活码老是失效,太麻烦,关注/收藏全栈君太难教程,2021永久激活的方法等着你。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlS32PGH0SQB-eyJsaWNlbnNlSWQi…

    2022年3月26日
    33
  • sql的嵌套查询_嵌套查询和嵌套结果的区别

    sql的嵌套查询_嵌套查询和嵌套结果的区别SQL连接查询和嵌套查询详解连接查询若一个查询同时涉及两个或两个以上的表,则称之为连接查询。连接查询是数据库中最最要的查询,包括1、等值与非等值连接查询2、自然连接查询1、等值连接查询2、自然连接查询3、非等值连接查询4、自身连接查询5、外连接查询6、复合条件查询1、等值与非等值连接查询比较运算符主要有=、>、<、>=、<=、!=(或<>)等。下面来看一个例子:假设有一个学生数据库,其中有三张表,即学生信息表(Student)、课程表(Cours

    2022年8月10日
    4
  • 达梦数据库分区表的使用

    达梦数据库分区表的使用前言在大型的企业应用或企业级的数据库应用中,要处理的数据量通常达到TB级,对于这样的大型表执行全表扫描或者DML操作时,效率是非常低的。为了提高数据库在大数据量读写操作和查询时的效率,达梦数据库提供了对表和索引进行分区的技术,把表和索引等数据库对象中的数据分割成小的单位,分别存放在一个个单独的段中,用户对表的访问转化为对较小段的访问,以改善大型应用系统的性能。达梦数据库分区表主要包括范围…

    2022年5月26日
    60
  • SpringBoot2.0.4整合elasticsearch为5.6.10

    网上找了很一些,很多跑不起来,可能是我的环境和介绍的环境不一样,自己搞一个! 环境说明:spring boot 使用2.0.4elasticsearch为5.6.10本地安装ES集群为 6.x版本第一步使用IDEA创建Spring boot web项目,使用spring boot 使用2.0.4版本, elasticsearch为5.6.10 &amp;amp;lt;parent…

    2022年2月27日
    46
  • Loadrunner11激活成功教程完成添加License失败

    Loadrunner11激活成功教程完成添加License失败Loadrunner11激活成功教程成功后,用deletelicense.exe工具把License全删除了,启动 Loadrunner,进入目录CONFUGURATION—>loadrunnerlicense,添加license提示我“Licensesecurityviolation.Operationisnotallowed”,于是我猜想是不是我运行deletelicense.exe工

    2022年7月22日
    14

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号