Gym - 101164K Cutting 哈希+枚举

加权余量法求解偏微分方程 加权余量法(Weighted Residual Method)是一种数值方法,用于求解偏微分方程(PDEs)。其基本思想是将偏微分方程的残差(或余量)通过加权函数加权,并使加权余量在定义域上为零,从而形成一组代数方程进行求解。 阅读详情

参考https://vjudge.net/solution/9596160和http://blog.youkuaiyun.com/prolightsfxjh/article/details/76099716

题意:给出字符串A和B,字符串A大小写不区分,字符串B由小写字母构成,构成AB的每种字母的个数相同,询问是否能把B切成3份,重构出字符串A,如果能则输出那三份子串,并按照A的顺序输出。

哈希+枚举

O(n^2)的枚举字符串B 的0~i-1 为第一段,i~j-1 为第二段,j~n-1为第三锻,

然后每次借用这三段的哈希值去和A串匹配,这三段有A(3,3) == 6种排列方式,所以枚举这6种排列,

之后借用它们的哈希值判断能否构造出字符串A。

复杂度 O(n^2)

可是我还是看不太懂这些地方的hash的用法。。。

#include<algorithm>
#include<vector>
#include<cstring>
#include<string>
#include<iomanip>
#include<cstdio>
#include<stack>
#include<iostream>
#include<map>
#include<set>
#include<queue>
#include<cmath>
#include<strstream>
using namespace std;
#define sf scanf
#define pf printf
#define mem(a,b) memset(a,b,sizeof(a));
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define MP make_pair
#define N 1000010
#define M 200020
#define ULL unsigned long long
#define LL long long
#define inf 0x3f3f3f3f
//printf("\n%.2lf sec \n", (double)clock() / CLOCKS_PER_SEC);
const int P=29;
const int maxn=100000;
ULL haha[N],TS[N];
char aa[N],bb[N];
ULL goal;
int n;
void print(char *s,int l,int r){
    for(int i=l;i<=r;++i)pf("%c",s[i]);
    puts("");
}
int main(){
    TS[0]=1;
    for(int i=1;i<=maxn;++i)TS[i]=TS[i-1]*P;
    sf("%s",aa);
    sf("%s",bb);
    n=strlen(aa);
    if(n<3){puts("NO");return 0;}
    for(int i=0;i<n;++i){ goal=goal*P+aa[i]-'a'; }
    for(int i=0;i<n;++i){haha[i+1]=haha[i]*P+bb[i]-'a'; }
    for(int i=1;i<=n;++i){
        for(int k=i+1;k<=n;++k){
            ULL ha1=haha[i];
            ULL ha2=haha[k]-haha[i]*TS[k-i];
            ULL ha3=haha[n]-haha[k]*TS[n-k];
            //123
            if(ha1*TS[n-i]+ha2*TS[n-k]+ha3==goal){
                puts("YES");
                print(bb,0,i-1),print(bb,i,k-1),print(bb,k,n-1);
                return 0;
            }
            //132
            if(ha1*TS[n-i]+ha3*TS[k-i]+ha2==goal){
                puts("YES");
                print(bb,0,i-1);print(bb,k,n-1),print(bb,i,k-1);
                return 0;
            }
            //213
            if(ha2*TS[n-k+i]+ha1*TS[n-k]+ha3==goal){
                puts("YES");
                print(bb,i,k-1);print(bb,0,i-1);print(bb,k,n-1);
                return 0;
            }
            //231
            if(ha2*TS[n-k+i]+ha3*TS[i]+ha1==goal){
                puts("YES");
                print(bb,i,k-1),print(bb,k,n-1),print(bb,0,i-1);
                return 0;
            }
            //321



            //312




        }
    }
    puts("NO");
}
对halcon形状匹配算法的一点分析 基于Intel VTune Profiler对halcon形状匹配算法的一点分析 阅读详情

相关推荐

线结构光三维重建(二):光平面标定与激光轮廓提取的实战优化

本文深入探讨了线结构光三维重建中的光平面标定与激光轮廓提取两大核心环节的实战优化。详细介绍了从棋盘格标定板法到自动化高鲁棒性标定的流程优化,并分享了针对复杂工业场景(如低对比度、高反光表面)的激光轮廓提取组合策略,旨在提升三维重建系统的整体精度与稳定性。

weixin_29057237的博客 333

codeforces gym 100935 F - A Poet Computer (哈希 + 二分)

题目链接:https://codeforces.com/gym/100935/problem/F 题面:F. A Poet Computer time limit per test2 seconds memory limit per test64 megabytes inputstandard input outputstandard output The ACM team is working on an AI project called (Eih Eye Three) that allows comp

l_migrant的博客 399

AI协议助手:法律文本解析与智能问答技术解析

自然语言处理(NLP)技术在法律文本解析中展现出巨大潜力,通过BERT等预训练模型实现条款分类与语义理解。结合OCR与知识图谱技术,AI协议助手能快速提取合同核心条款,并以问答形式解释法律术语,显著提升商务场景的决策效率。测试数据显示,该系统对NDA协议的识别准确率达92%,响应时间仅1.2秒,特别适用于人力资源竞业协议、云服务SLA评估等场景。随着RAG架构与法律术语向量库的应用,AI+法律正推动合同审核成本下降67%,未来将在跨境合规、智能谈判等方向持续演进。

weixin_29053577的博客 132

[GYM101173K] CERC 16 A.Appearance Analysis map哈希+暴力判断

题目大意:给定一个图片,要求你找出上面窗户的种类,每个窗户上都被染上了不同性状的颜色。其中有一些窗户可能会被旋转,旋转之后的窗户和原窗户等效。求有多少种不同的窗户。 思路分析:一开始考虑字符矩阵状态数组,储存一下横行和纵行的计数状态,然后开个mapmapmap映射一下。但是发现这样无法确切的表示状态;然后又考虑哈希,发现不是很好写。于是采用队友的思路:直接将每个窗户旋转四次合成一个字符串,然后对字符串打一个mapmapmap,每次旋转之后判断是否存在先前的状态。不存在就插入一个。最后输出mapmapmap的

HeartFireY的博客 385

基于微信小程序的垃圾分类系统,附源码

垃圾分类小程序管理员功能有个人中心,管理员管理,意见反馈管理,视频类型管理,垃圾类型管理,新闻类型管理,论坛信息管理,环保视频管理,环保知识管理,垃圾信息管理,环保新闻管理,用户管理,知识问答试卷管理,试题管理,测试管理,轮播图管理。用户可以在微信小程序上面注册登录,查看各种环保信息和垃圾信息,还可以参加知识问答等操作。垃圾分类小程序的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。

Java徐师兄的博客 2077

2.6 SST的核心性能指标体系

本文构建了固态变压器(SST)的核心性能指标体系,涵盖电气性能、可靠性、经济性和环境适配性四大类指标。电气性能指标包括运行效率(≥97%)、功率密度(≥900kVA/m³)、谐波畸变率(≤3%)等关键参数;可靠性指标设定MTBF≥43800h、年均故障率≤1.2次/年等标准;经济性指标对比分析了初始购置成本(45-55万元)和全生命周期成本(48-55万元);环境适配性指标则明确了温度、海拔等工况要求。该体系采用量化公式和国标限值,为SST的性能测试、选型和优化提供了统一标准。

技术工作者 606

Letters Gym - 101164F

https://vjudge.net/contest/170300#problem/Fcode’s forceint main(){ //freopen("F.in","r",stdin); LL now=26,len=1; LL n;sf("%lld",&n);++n; while(n>now*len){ n-=now*len,len++;now*=

now_ing的博客 317

别再为FPGA程序裸奔发愁了!手把手教你用Quartus和AES256给Altera芯片上把‘锁’

本文详细介绍了如何为Altera/Intel FPGA芯片(如Cyclone系列)构建可靠的AES256加密体系,涵盖密钥类型选择、Quartus实操到JTAG链路验证的全流程。通过硬件级AES256引擎实现配置流解密,确保FPGA程序的安全保护,适用于工业控制器等高安全需求场景。

weixin_28309571的博客 389

Cutting(思维)

题意:给出一组数和拥有的比特币,在这组数中偶数与奇数的数目相等,每切割一次就要使切割后的两部分各自偶数与奇数数目也想等,假设在i处切割,那么切割后所花费的比特币为a[i+1]-a[i],在不超过所给的比特值得情况下最多切割多少次。 题解:由于题目说明刚开始得偶数与奇数就相等,那么这组数得数目必定是偶数,为了使切割后各自偶数与奇数数目相等,那么切割后各部分得数目也必定是偶数,所以我们假设每步为两个数...

qq_44722533的博客 234

【2023年】云计算比赛——金砖挑战赛正式题

文章摘要 本文详细记录了OpenStack私有云平台与Kubernetes容器云平台的部署与运维过程,涵盖环境初始化、组件安装、服务配置及自动化运维等关键任务。主要内容包括: OpenStack部署 环境初始化(主机名、Yum源、FTP服务等) 核心组件安装(Keystone、Glance、Nova、Neutron等) 运维任务(安全组管理、镜像上传、存储服务配置等) Kubernetes集群搭建 节点配置(时间同步、免密登录) 容器运行时(Docker)与网络插件(Flannel)部署 Harbor私有仓

geekgold的博客 313

【局部规划模块曲线算法】曲线平滑介绍

本文先对轨迹平滑问题做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容(1)适合给移动机器人运动的路径【满足运动学,高阶平滑】(2)高阶的运动学不能够突变的【至少三阶的加速度不能突变,最好四阶的jerk和五阶的snap也不能突变】(3)在转弯的地方不会停下来(4)加减速均衡,节省能量(5)节省时间的。

qq_35635374的博客 5718

算法导论 第十五章:动态规划之棒的切割(Rod Cutting)

和分治法一样,动态规划(Dynamic programming)是通过组合子问题的解而解决整个问题的。 其不同点在于: 1)分治法是将问题划分成一些独立的子问题,递归求解各个子问题,然后合并子问题的解而得到原问题的解 2)动态规划使用于子问题不独立的情况,也就是各个子问题包含公共的部分。若采用分治法,会有重复的求解公共部分,而动态规划算法对每个子问题只求解一次,然后抢劫过保存在一张表中,从而

dllTimes 4115

SAP Joule 经过了超过 2.5 亿行 ABAP 代码的训练之后......

披露的统计数据,Joule 提供的这种全新系统交互方式,可将事务性任务执行速度提高 90%,访问 SAP Help Portal 内容的速度提高 95%。在 ABAP 应用开发领域,SAP 官网数据显示,Joule 经过超过 2.5 亿行 ABAP 代码的训练,有信心成为这一领域行业领先的代码助手。刚刚过去的 SAP 蓝宝石大会上,SAP 提到,从2023年第四季度以来,SAP 已经交付了 50 项基于人工智能的创新。让其生成 SAP 应用能够识别的结构化应用数据,业务用户全程无需离开 SAP 应用程序。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 798

【枚举】【字符串哈希】Gym - 101164K - Cutting

给你A B两个串,让你切B串两刀,问你能否把切开的三个串拼成A。 哈希显然。 #include<cstdio> #include<cstring> using namespace std; typedef unsigned long long ull; const ull MOD1=2000000011; const ull MOD2=1000000007...

weixin_33811961的博客 94

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

codeforces gym 101164 K Cutting 字符串hash

题意:给你两个字符串a,b,不区分大小写,将b分成三段,重新拼接,问是否能得到A; 思路:暴力枚举两个断点,然后check的时候需要字符串hash,O(1)复杂度N*N; 题目链接:传送门 #pragma comment(linker, "/STACK:1024000000,1024000000") #include<iostream> #include<cstdi...

weixin_30726161的博客 135

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Codeforces Gym 101164 K. Cutting (字符串 HASH)

题意对于串 S1 和 S2,求一种将串 S1 任意分割为 3 个子串 A, B, C ,满足 A+B+C=S1,同时通过改变排序能构成 S2 串。解题思路字符串 HASH对 S1 串的分割位置进行枚举,将 S1 分割为 [1, i] , [i+1, j] , [j, length] 。通过判断 三个段合并的 hash 值是否等于 S2 串 HASH 可以避免绝大多数判断,若 HASH 值相等,判断重

DorMOUSENone的博客 681

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

gym101164I(搜索+剪枝)

题目链接 Problem I Cubes Write a program that takes a natural number N and decomposes it as a sum of the minimum number ofexact natural cubes. The program should find m1, m2, ..

fouzhe的博客 644

Cutting (暴力 + 滚动哈希判字符串匹配)

题意: 给你两串小写字符串a和b,问能否将a拆成三段重新组成b 做法: 枚举拆分位置,也就是C(2,4999)。然后judge时用滚动哈希判断字符串是否匹配。 PS: WA了好多发,因为爆int(忘记1LL,取模没取好...)。滚动哈希不一定能A,但基本都能A。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

zehong1995的博客 558

切木棍 Cutting Sticks

简单的dp//Serene //紫书p278 切木棍 Cutting Sticks #include #include #include #include #include #include using namespace std; const int maxn=50+10; int l,n,p[maxn],dp[maxn][maxn]; int aa;char c; int read()

Serene 575

Cutting(CF-998B)

Problem Description There are a lot of things which could be cut — trees, paper, "the rope". In this problem you are going to cut a sequence of integers. There is a sequence of integers, which cont...

Alex_McAvoy的博客 457

Gym - 101164C kmp

https://vjudge.net/contest/170300#problem/Cchar s[maxn]; int nxt[maxn]; int cnt[maxn]; int vis[maxn]; int main(){ int n,q; sf("%d%d",&n,&q); sf("%s",s); int i,k=0; for(i=1;i<n;++i){

now_ing的博客 389

Codeforces Gym 101164 D. Reading Digits (模拟)

题意编码方式定义为: encodes “1211” as: “one of one, one of two, two of one”, or, more precisely: “111221”.二次编码为: encoding of “111221” string is: “312211”.保证不存在待编码串联系相同字符在 10 个以上的。给定 k 次编码后的字符串,求原串的 pos 位的字符解题思路

DorMOUSENone的博客 593

Codeforces Gym 101164 G. Pokemons

// 根据初始资金以及 n 天的价格进行一次交易(先买后卖,不能同一天),求最大的获利(可能为负)。 //此题卡空间//线性处理,处理第 i 天价格与之前的最低价格的利润差,同时不断刷新前 i 天的最低价格。#include <bits/stdc++.h> using namespace std; int main() { double amount, minPrice, curPrice,

DorMOUSENone的博客 892

Gym - 101164I dfs

https://vjudge.net/contest/170300#problem/Idfs//其实这里deep应该是个数的意思把。。。int st[maxn]; int cnt=0; bool dfs(int n,int start,int deep){ if(n<0)return 0; if(deep==0){ if(n==0){

now_ing的博客 280

Tree Cutting 题解

After Farmer John realized that Bessie had installed a "tree-shaped" network among his N (1 &lt;= N &lt;= 10,000) barns at an incredible cost, he sued Bessie to mitigate his losses.  Bessie, feeling v...

自渡的博客 501

数组、哈希以及其他枚举类型

Array#value_at接受一个索引列表作为参数,并返回包含这些元素的数组 适用情况:元素不相邻情况下做索引! 例: a=[12,2,3,4,5,11,18]p x=a.values_at(1,3,2)p y=a.values_at(0..2,4) [2, 4, 3] [12, 2, 3, 5] 确定数组长度: Array#length,...

weixin_34010949的博客 163
上一篇: Watto and Mechanism CodeForces - 514C hash+枚举
下一篇: UVALive 4513 Stammering Aliens hash+二分
sega_handsome
博客等级 码龄10年 7粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值