uva 12721 Cheap B-Subsequence 背包

STM32F103C8T6+TB6612驱动直流电机全攻略(附PWM调速代码) 本文提供了一份基于STM32F103C8T6微控制器和TB6612驱动模块的直流电机驱动完整解决方案。详细解析了硬件连接、STM32CubeMX配置、HAL库驱动代码编写,并附带了PWM调速代码实现。内容涵盖从基础原理到实战调试的全过程,旨在帮助开发者快速构建稳定、可精准调速的电机控制系统,适用于智能车、机器人等嵌入式项目。 阅读详情

题意:

给一个字符串s和一个数字k, 表示要在这个字符串里面选择一个长度为k的子串出来,使这个子串为所有长度为k的子串中的权值最小,定义权值:对与任意s[i], 都给定了一些数字对,形如(a1, b1), (a2, b2)......,这个字符的权值为:该字符在子串中的位置 p, sum(p/a[i] * b[i], p是a[i]的倍数)。输出最小的权值

题解:

很容易处理出每个s[i]在1-k的权值,处理出后,仔细想想,其实就是一个0-1背包,令背包容量为k, 每个字符的体积都为1,权值为算出的对应位置的权值。

代码:

#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <map>
#include <sstream>
#include <algorithm>
using namespace std;
const int maxn = 1e2+10;
const int INF = 1e8;
char s[maxn];
int m, n;
struct Par {
    int a, b;
    bool is_multiple(int v)
    {
        return v % a == 0;
    }
};
struct dfd {
    int num;
    Par pir[15];
    int v[maxn];
    void init()
    {
        memset(v, 0, sizeof(v));
        for (int p = 1; p <= m; p++)
        {
            for (int i = 0; i < num; i++)
            {
                if (pir[i].is_multiple(p))
                {
                    v[p] += p / pir[i].a * pir[i].b;
                }
            }
        }
    }
}arr[26];
void read_input()
{
    scanf("%s%d", s, &m);
    n = (int) strlen(s);
    for (int i = 0; i < 26; i++)
    {
        scanf("%d", &arr[i].num);
        for (int j = 0; j < arr[i].num; j++)
        {
            scanf("%d%d", &arr[i].pir[j].a, &arr[i].pir[j].b);
        }
    }
    for (int i = 0; i < 26; i++) arr[i].init();
}
int dp[maxn], cnt = 0;

void zeroOnePack(int cost, int cur)
{
    for (int i = m; i >= cost; i--) {
        if (dp[i] > dp[i-cost]+arr[s[cur]-'a'].v[i]){
            dp[i] = dp[i-cost]+arr[s[cur]-'a'].v[i];
        }
    }
}
void solve()
{
    for (int i = 0; i <= m; i++) {
        dp[i] = INF;
    }
    dp[0] = 0;
    for (int i = 0; i < n; i++)
    {
        zeroOnePack(1, i);
    }
    printf("%d\n", dp[m]);
}
int main()
{
 //   freopen("/Users/apple/Desktop/in.txt", "r", stdin);
    
    int t, kase = 0; scanf("%d", &t);
    
    while (t--)
    {
        read_input();
        printf("Case #%d: ", ++kase);
        solve();
    }
    
    
    return 0;
}


3D Gaussian Splatting环境配置和运行 使用conda命令根据environment.yml文件创建虚拟环境时,安装的pytorch是使用conda install 命令来安装的,实际上并不能成功安装带有gpu的pytorch,而这两个模块的安装依赖于带gpu的pytorch。如果不注释掉这三行,直接安装会报错 阅读详情

相关推荐

环境配置 |Jupyter lab/Jupyter Notebook 安装与设置

ipynb使用Jupyterlab/Jupyter Notebook 来编写程序时的文件,在使用时,可以现转换为标准的.py的python文件。

weixin_44649780的博客 5769

B. Subsequence Hate(思维,树状数组)

B. Subsequence Hate 题意: 给出一个由01组成的字符串,可以随意将 0改10改10改1 或 1改01改01改0。问最小改变次数,使字符串的所有子序列中都不存在101101101或010010010。 思路: 把字符串变成0001111,111000,00000,1111110001111,111000, 00000, 1111110001111,111000,00000,111111的形式就行了,我们对第i个元素,要么把它的左边+自己变成1,它的右边变成0它的左边+自己变成1,它的右边变

weixin_45363113的博客 444

Avalonia跨平台开发入门:从安装到运行第一个应用(Windows/Linux/macOS)

本文详细介绍了Avalonia跨平台开发的基础入门指南,从安装到运行第一个应用的全过程。涵盖Windows、Linux和macOS三大平台的环境配置,特别推荐使用Visual Studio进行开发,并提供常见问题的解决方案,帮助开发者快速上手Avalonia框架。

weixin_28688385的博客 542

Codeforces 346B - Lucky Common Subsequence kmpDP

最长公共子序列加强版,要求最长子序列不包含病毒串 在原本的dp[i][j]上新增一维k,表示A串前i个和B串前j个匹配到病毒串第k个字符的最大值 扩展一下多个病毒串的话就用AC自动机把,K换成自动机状态 A[i]=B[j]时,dp[i+1][j+1][k]=dp[i][j][f[k]]+1 其实这种更新方式挺蛋疼的,从[i-1][j-1]更新过来更符合转移方程定义一些 #include

Dream in the Night 458

告别手动调参!PSCAD 4.2的Multiple-Run功能,5分钟搞定交流故障批量仿真

本文详细介绍了PSCAD 4.2的Multiple-Run功能如何高效处理交流故障批量仿真,告别传统手动调参的低效模式。通过五步配置法,工程师可在5分钟内完成数百次参数组合的仿真,显著提升电力系统分析效率。文章还包含工业级应用案例和高级调试技巧,助力实现故障仿真的自动化与智能化。

weixin_42552716的博客 275

从Datasheet到可用的Verilog模块:手把手教你为N25Q128 SPI Flash写状态机驱动

本文详细介绍了如何从Datasheet到实现可用的Verilog模块,手把手教你为N25Q128 SPI Flash编写状态机驱动。文章涵盖SPI Flash的核心工作机制、数据手册解析方法、Verilog状态机设计实践以及调试与性能优化技巧,特别适合FPGA开发者和硬件设计工程师参考。

weixin_30596023的博客 175

B. Subsequence Hate

time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Shubham has a binary stringss. A binary string is a string containing only characters "0" and "1". He can perform the following operation.

无知的我 715

XYC Q8开源掌机刷第三方系统教程

分区结束后直接将各种游戏文件放入OD分区的Roms文件夹下

m0_60352504的博客 4566

B. Subsequence Hate(贪心思维)

子序列中不能出现101和010子序列中不能出现101和010子序列中不能出现101和010 什么意思?就是说1和0不能交替来回放置什么意思?就是说1和0不能交替来回放置什么意思?就是说1和0不能交替来回放置 只有4种情况只有4种情况只有4种情况 0000000000000.......111111111111110000000000000.......111111111111110000000000000.......11111111111111 1111111111111.......0000000000

jziwjxjd的博客 1288

【OpenClaw从入门到精通】第11篇:OpenClaw 2026多模态实战全攻略:OCR/语音/图像自动化(附完整代码+双部署方案)

本文聚焦OpenClaw 2026版核心升级的多模态能力,从底层架构原理到实操落地全流程拆解。先解析“统一指令解析+多工具适配器”的核心设计逻辑,再提供阿里云规模化部署(适合批量任务)与本地汉化版部署(适合隐私数据调试)的详细步骤,含依赖安装、配置验证完整操作;随后落地三大高频实战场景——OCR合同信息结构化提取、会议录音自动转写纪要、电商商品图片智能打标,每个场景均提供可直接运行的完整代码、执行结果演示及流程说明;最后补充多模态任务避坑指南、性能优化技巧与成本控制方案。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 2611

SolidWorks 小车底盘 装配体

通过制作小车底盘了解solidworks装配体的部分知识

及时总结 2226

B - Subsequence

B-Subsequence Time Limit:2000/1000MS (Java/Others) Memory Limit:128000/64000KB (Java/Others) SubmitStatus Problem Description A sequence of N positive integers (10 < N &l...

weixin_30677073的博客 208

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Subsequence

Description 给出两个由小于等于 k 的正整数构成的数列 A 与 B,长度为 n 与 m 现在需要一个由小于等于 k 的正整数构成的数列 C,使得 C 既不是 A 的子序列,也不是 B 的子序列 请求出 C 的最小长度 对于 100% 的数据,满足 n,m,k ≤ 4000,1 ≤ Ai,Bi ≤ k 歪想法引申的一个有趣问题 比赛的时候我曾经往计数的方向思考过,即枚举答案L

LYD729 1249

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

leet_392_is_subsequence(判断序列a是否为序列b的子序列)

leet_code:链接 问题描述:判断序列a是否为序列b的子序列 输入输出样例: intput :a = “abc”, b = “ahbgdc” output: true(1). c++ 代码实现 class Solution { public: bool isSubsequence(string S1, string S2) { int idx = 0, end = S1.s...

wonengguwozai的博客 842

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

dp Problem B:Common Subsequence(HDU 1159)

Problem B Time Limit : 2000/1000ms (Java/Other)   Memory Limit :65536/32768K (Java/Other)Total Submission(s) : 1   Accepted Submission(s) : 1Problem DescriptionA subsequence of a givensequence is the ...

pxlsdz的博客 613

B - Subsequence POJ - 3061

3061 -- Subsequence题目大意:给一个长度为n的数组,和一整数s,求所有元素和大于等于s的连续子串的最小长度思路:用尺取的思维,选定一个区间内的元素,维护区间内的元素和,先加上右边的数,如果和大于s了,把左端点缩小,减去大于s的部分,右端点等于n时结束,时间复杂度小于2n。............

ashbringer233的博客 217

hdu 2771(uva 12171) Sculpture bfs+离散化

题意: 给出一些边平行于坐标轴的长方体,这些长方体可能相交,也可能相互嵌套,这些长方体形成了一个雕塑,求这个雕塑的总体积和表面积。 题解: 最容易想到直接进行bfs或者dfs统计,但此题的麻烦之处在于求整个雕塑的外表面积和雕塑内部可能出现四个长方体所搭成的空心,空心不能计算到表面积中,但是计算总体积却要计入,于是直接bfs或者dfs不好处理,于是,可以想到直接统计整个雕塑外围的所有小方块,即

myHelperIsMe的专栏 2313

2015-2016 ACM ICPC Baltic Selection Contest [解题报告]

新地址链接A题:AHB 水题,直接上代码:#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; typedef long long Long; const int maxn = 1e5 + 10; const int maxm = 256;int main(

myHelperIsMe的专栏 1838

codeforces GYM 100792H

题意:给出n个1个字节的数(1<=n<=100000),用16进制的形式给出,每个数的范围00-FF, 找出一个子序列s, 使得0^s[0]+1^s[1]+2^s[2]+…k^s[k]的和最大,输出这个最大值。第一步:首先很容易想到一个简单的dp方程 dp[i][j] = max(dp[i-1][j], dp[i-1][j-1]+(arr[i]^j)) dp[i][j]:代表前i个数一共选了j

myHelperIsMe的专栏 1386

uva 11853 Paintball dfs找连通块

题意: 给出一个矩形湖, 湖里面有一些圆形地小岛, 问能否从左岸乘船到达右岸,如果能,找出最上面的起点和终点。 题解: 如果能从左岸到达右岸,那么一定不能存在一个连通的岛屿从上岸连到下岸, 所以直接从上到下做dfs,判断是否存在从上岸到下岸地连通块,完成判断。那么接下来就是如何找出最上方地点了,画画图便发现,对于起点,如果存在跨越上岸和左岸地连通岛屿,那么起点一定只能在左岸地交点下方,所以,

myHelperIsMe的专栏 1357

uvalive 6393(uva 1572) Self-Assembly 拓扑排序

题意: 给出一些正方形,这些正方形的每一条边都有一个标号,这些标号有两种形式:1.一个大写字母+一个加减号(如:A+, B-, A-......), 2.两个0(如:00);这些正方形可以随意翻转和旋转,当两个正方形通过旋转或翻转,使得他们的公共边为相同大写字母并且符号相反时,他们就可以彼此结合拼在一起,现在给出n中正方形,每种正方形有无限多种,问这些正方形能否拼成一个无限大的结构。 题解:

myHelperIsMe的专栏 1142

codeforces 593D 树链剖分

题目链接 给出一棵树,每棵树有value值,两种操作:1 u v x, 用x依次除以u到v路径上的数,然后 输出x,2 p x, 把第p条边的权值改为x. 直接树链剖分,然后用线段树维护乘积即可。注意 乘积可能爆long long , 可以用inf/a如果#include <cstdio> #include <cstring> #include <algorithm> #define lson

myHelperIsMe的专栏 1038

Acdream 1424 Diversion 树链剖分+线段树

题意: 给定n个城市,和一些道路,道路有两种,一种是石头路,还有一种是乡村路,石头路形成了一棵树,即两两城市都可达,乡村路的加入使所有的石头路都处于一个或多个环中,即任意石头路被破坏后,城市间依然可以通过乡村路连通,现在敌国可以破坏一条石头路和一条乡村路,问,有多少种破坏方案,可以使破坏后,至少有一对城市不能互相到达。 题解: 仔细想想可以发现,石头路形成了一棵树,当这棵树上某一段道路被乡村

myHelperIsMe的专栏 979

hdu 1044 Collect More Jewels 解题报告 + 状态压缩分析

fd

myHelperIsMe的专栏 973

codeforces 593B Anton and Lines

题意:给出n条直线(1<=n<=1e5),问你在(x1,x2)这个区间是否存在交点当n = 1明显没有交点,NO当n = 2: 如下图其中a1为直线L1与x1的交点,b1为直线L1与x2的交点,可以发现如果两条直线要 在(x1,x2)之间相交,那么必须满足a1当n = 3:新博客地址我们发现如果L3与L1在(x1,x2)有交点,那么L3与L2在(x1,x2)必有交点,所以 所以,这种情况,我们只

myHelperIsMe的专栏 939

hdu 3810 Magina 队列模拟0-1背包

题意: 出一些独立的陆地,每片陆地上有很多怪物,杀掉每个怪物都需要一定的时间,并能获得一定的金钱,给出指定的金钱m, 求最少要多少时间可以得到m金钱,仅能选择一个陆地进行杀怪。 题解: 这题,如果不管数据范围,很容易想到对每片陆地求一次0-1背包(dp(i, j) = min(dp(i-1, j), dp[i-1, j-money] + time), i 为金钱),然后在所有陆地中找出最少的

myHelperIsMe的专栏 937
上一篇: hdu 3450 Counting Sequences 递推+树状数组
下一篇: uva 12726 One Friend at a Time bfs + 状态压缩
吃掉吃掉
博客等级 码龄12年 7粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值