hdu 1936 Emoticons :-)

2015广东工业大学新生赛 总结+部分题解 1.心态很重要。不能以OJ垃圾来推脱比赛。大家在同一个垃圾平台,比赛仍然是公平的。但行好事莫问前程。 2.多在纸上写多推导。 B题: A 和 B 的最小公倍数 为 C*K 已知 A C 求B的个数。(A能整除C) 起初以为K是当作变量来做,但是很明显,如果K当作变量那么显然B的个数是无数个。 因为任意C*K,B都可以等于C*K. 所以,显然K要当作常量,那么K是多少其实是无所谓 阅读详情


题意
给n个表情,m个字符串(带空格),求最少需要破坏多少个字符(替换成空格),使得字符串中不存在表情

思路
对于每个字符串,搜索出每个表情出现的位置,记录成一个个区间,于是就转换成,区间选点问题,选择最少的点覆盖全部区间。

对所有区间先按右端点从小到大排序,右端点相同时按左端点从大到小排序。

第一次选择第一个区间的右端点,对于后面的区间,若左端点大于最后选的一个点,就要选取该区间的右端点

具体见代码

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
#define MS(x,y) memset(x,y,sizeof(x))
using namespace std;
const int MAXN = 0x3f3f3f3f;
const int N = 105;
const double eps = 1e-10;
void fre(){freopen("t.txt","r",stdin);}
typedef long long LL;
typedef unsigned long long ULL;

struct node
{
    int l,r;
}p[N];
char e[N][20],s[N];
bool cmp(node a,node b)
{
    if(a.r==b.r) return a.l>b.l;
    else return a.r < b.r;
}
int find(char *s,char *e,int pos)
{
    int lens = strlen(s),lene = strlen(e),j;
    for(int i = pos; i <= lens-lene; ++i)
    {
        j=0;
        while(s[i+j]==e[j] && j < lene) j++;
        if(j==lene) return i;
    }
    return -1;
}
int main()
{
   // fre();
    int n,m,ans,cnt,tem;
    int i,j;
    while(~scanf("%d%d",&n,&m) && m+n)
    {
        //init
        ans = 0;
        //input
        for(i = 0; i < n; ++i) scanf("%s",e[i]);
        getchar();
        //solve
        while(m--)
        {
            cnt=0;
            gets(s);
            int lens=strlen(s);
            for(i = 0; i < n; ++i)
            {
                int pos = 0,lene=strlen(e[i]);
                while(pos<=lens-lene)
                {
                    tem = find(s,e[i],pos);
                    if(tem==-1)break;
                    p[cnt].l = tem; p[cnt].r = tem+lene-1;
                    pos=p[cnt++].l+1;
                }
            }
            if(!cnt)continue;
            sort(p,p+cnt,cmp);
            tem = p[0].r; ans++;
            for(i = 0; i < cnt; ++i)
            {
                if(p[i].l > tem)
                {
                    tem = p[i].r;
                    ans++;
                }
            }
        }
        //output
        printf("%d\n",ans);
    }
}

九余数定理及证明 hdu 1163 九余数定理: 一个数对九取余后的结果称为九余数。 一个数的各位数字之和想加后得到的 证明借鉴了网络上的证明,加以修改: 首先证明前有两个基本需要知道的规律  1.和的模 等于 模的和再取模 如:(15+7)%3 = (15%3+7%3)%3 逆运算亦可 2.积的模 等于 模的积再取模 如:(15*7)%3 = (15%3 * 7%3) %3 逆运算亦可 阅读详情

相关推荐

01串出现奇数个1的方案数 2016四川省赛 Odd Discount

题目链接:https://acm.bnu.edu.cn/v3/problem_show.php?pid=52300先证明结论,后说题目; 结论1:长度为n的01序列出现奇数个1的方案为总方案的1/2(即出现奇数个1和出现偶数个1的方案数相等) 证明:(数学归纳法) n=1的情况,显然成立; 如果n=i成立:那么再额外增加1个1,奇数个1和偶数个1的方案会对调;再额外增加1个0,奇数个1和偶数

QZQ 2265

HDU 1936 区间贪心

/**区间贪心。前几天刚做了POJ 1328 ...思路完全相同...*最多有100个表情,100行文字。遍历寻找每个表情的所在区间。时间复杂度大约在10^5 ~ 10^6 可以接受。*然后对每个表情按照右坐标排序。改变表情的最右边的字符。贪心判断是否更改。 *(⊙o⊙)…每一行的里的表情可能是重复的。所以判断每行要更改的最少字母数。最后求和。很傻逼的全都放一起了。然后。。。...

weixin_30726161的博客 117

高仿微信表情键盘XhsEmoticonsKeyboard支持emoji

android 表情键盘,支持emoji和自定义表情,高度模仿微信,跟随软键盘自动适应高度,非常简单集成拓展到你的项目当中 小红书下载地址http://zhushou.360.cn/detail/index/soft_id/1918042 github下载: https://github.com/w446108264/XhsParallaxWelcome

hdu 1936 Emoticons :-)

比赛时这道题并没多想,当高放说是区间覆盖贪心的时候,已崩溃,区间贪心前两天刚做过,poj 1328,还打了博客,结果比赛时就是没想到。。 这道题算是一道稍微麻烦点。。 题意: 其实就是对每一行分别使用贪心,最后把修改的点的和加起来 参考链接:http://www.cnblogs.com/cheater/p/4675043.html 我和参考中的贪心代码有点不同,他是从后往前搜,排序是x.

sholck222的专栏 636

秦时明月6.2魔改版_从零到一部署指南_含安卓客户端配置与GM后台直通

本文详细介绍了秦时明月6.2魔改版的从零到一部署指南,包括环境准备、服务端安装、安卓客户端配置以及GM后台直通等关键步骤。特别针对安卓客户端配置和GM工具使用提供了实用技巧,帮助用户快速搭建并优化游戏服务器,确保稳定运行。

weixin_42522964的博客 315

实战演练:基于Veristand Custom Device的硬件在环(HIL)数据流控制模块开发

本文详细介绍了基于Veristand Custom Device的硬件在环(HIL)数据流控制模块开发实战。通过LabVIEW环境配置、动态路由逻辑构建、实时处理核心开发及性能优化等关键步骤,帮助工程师快速掌握定制化HIL测试系统的开发技巧,提升测试效率与准确性。

weixin_29206669的博客 475

HDU 1936 Emoticons :-) (贪心)

题目 http://acm.hdu.edu.cn/showproblem.php?pid=1936 题意 给n个表情,m个字符串(带空格),求最少需要破坏多少个字符(替换成空格),使得字符串中不存在表情 解法 对于每个字符串,搜索出每个表情出现的位置,记录成一个个区间,于是就转换成,区间选点问题,选择最少的点覆盖全部区间。 对所有区间先按右端点从小到大排序,右端点相同时按左端点从大到小排序,第一次...

weixin_30550081的博客 148

使用 VPN 访问太理内部网相关问题总结【太原理工大学】

电脑连接 VPN,访问校园内部网相关问题总结,太原理工大学。

m0_52861684的博客 9878

HDU1936--Counting Triangles

Description Given an equilateral triangle with n the length of its side, program to count how many triangles in it.   Input The length n (n process to the end of the file

SCUT_Pein 672

nvprof:CUDA编程性能分析工具

NVIDIA提供了具有高性能计算的GPU产品,如何检验硬件的实际性能,写出高效的CUDA代码让算力加速卡物尽其用,那可以通过其配套提供的“护城河”软件工具链来检验和帮助发挥GPU的性能:nvprof。如下,对于将8192个A,B向量进行向量加法运算,即C[i] = A[i] + B[i],当软件设置不同的blocknum, threadnum时候,CUDA执行kernel的时间是不同的。比如如下命令,可以看到程序tmp1的总体性能,下面一行是打印gpu的执行时间情况。

Briwisdom的博客 3384

ROS+Gazebo仿真入门:用TurtleBot3模拟扫地机器人全流程

本文详细介绍了如何利用ROS和Gazebo仿真平台,以TurtleBot3 Waffle Pi模型为核心,从零搭建并运行一个虚拟扫地机器人的全流程。内容涵盖仿真环境搭建、世界与机器人模型解析,并重点演示了SLAM建图、自适应蒙特卡罗定位以及全局与局部路径规划等核心算法实战,为机器人算法开发与验证提供了高效、低成本的解决方案。

sre5engineer的博客 1087

POJ_1936

<br />#include <cstdlib> #include <iostream> #include <cstdio> using namespace std; int const MAX_LEN = 100001; int main(int argc, char *argv[]) { //freopen("input.txt", "rt", stdin); //freopen("output.txt", "wt", stdout); char s

CNnumen 737

地平线旭日X3 安装xfce桌面+VNC查看USB摄像头

VNC是Virtual Network Computing的缩写,它是一种使用RFB(Remote Frame Buffer)协议的用于控制远程电脑的图形桌面分享系统。xfce桌面相比于GNOME桌面更加轻量,占用的资源更少,在没有GPU的设备上也可以运行(旭日的Desktop版本从外观上好像就是xfce桌面,具体没有尝试)。可以使用专用的VNC客户端连接到开发板,例如vnc viewer。板子默认带有openssh-server,因此,WiFi热点连接成功后,就可以使用ssh登录开发板了。

bingdund的博客 509

自己实现的使用c++解析文本中的emoji表情

程序要求实现文本内容的emoji表情显示,通过多方资料查询,以及官网emoji表情和Unicode的对照表,自己实现了一套解析emoji的方法,目前基本满足程序的需求。 具体实现逻辑是将string转成wstring,然后遍历每个字符,判断是否是emoji表情,将文本拆分成若干块,然后界面再去处理,其中最主要的就是emoji表情的判断,通过实际发送emoji表情,总结出以下几种表情类型: 1、...

muwuxin的博客 7243

第47节:cesium 热力图效果(含源码+视频)

cesium 热力图效果

qq_29384639的博客 1676

瑞芯微RK3588平台YOLOv8Pose模型RKNN部署与C++优化实战:从模型转换到高效推理的全流程指南-附源码

错误码 | 原因 | 解决方案 || -1001 | ONNX算子不支持 | 升级RKNN SDK至最新版 || -2003 | 量化校准数据不足 | 增加校准图片至500张 || -3005 | 输入尺寸不匹配 | 固定模型输入尺寸为640x640 || 资源消耗 | CPU 35% | NPU 90% |

m0_64661770的博客 990

POJ-1936- All in All( 最长公共子序列 && 水题 )

All in All Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 30726   Accepted: 12815 Description You have devised a new encryption technique which encodes a me

保持对编程的热情! 637

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

最大团 极大团 Bron–Kerbosch算法 poj 2989

昨日老刘开了最大团专题后,起初以为挺简单,后来发现有点麻烦。能用的资料又很少。分享一下学习的东西 以poj 2989为例,题意是求 不同极大团的数量 要用Bron–Kerbosch算法 首先是最朴素的伪代码,没有任何剪枝(来自维基百科)https://en.wikipedia.org/wiki/Bron%E2%80%93Kerbosch_algorithm Bro

QZQ 9355

老版QQ原生表情gif动态

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

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Educational Codeforces Round 8 D - Magic Numbers 数位DP

题意很简单,偶数位为d,奇数位不为d,且能被m整除的数,叫d-magic,给定d,m,a,b,求在[a,b]上d-magic的个数。 注意 1 既是 0-magic 又是 2/3/4/5/6/7/8/9-magic  还有值得注意的是,给定的a,b 数位相同。 一开始没用到这个条件,写得挺麻烦~ #include #include #include #include #include #in

QZQ 8373

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

二分图 最小覆盖数 = 最大匹配数、最大独立集 = 总数-最小覆盖集 证明 hdu 1068

二分图有两个定理:最小覆盖数=最大匹配数、最大独立集=总数-最小覆盖集 。 这里来给出证明(如果还不懂匈牙利算法,请先看之前写的一篇)匈牙利算法链接 几个基本定义: 最小覆盖:即在所有顶点中选择最少的顶点来覆盖所有的边。 最大匹配:二分图左右两个点集中,选择有边相连的两个匹配成一对(每个点只能匹配一次),所能达到的最大匹配数。 最大独立集:集合中的任何两个点都不直接相连。 最小覆盖数=

QZQ 5814

hdu 5304 基尔霍夫矩阵

关于基尔霍夫矩阵: *算法引入: *给定一个无向图G,求它生成树的个数t(G); * *算法思想: *(1)G的度数矩阵D[G]是一个n*n的矩阵,并且满足:当i≠j时,dij=0;当i=j时,dij等于vi的度数; *(2)G的邻接矩阵A[G]是一个n*n的矩阵,并且满足:如果vi,vj之间有边直接相连,则aij=1,否则为0; *定义图G的Kirchhoff矩阵C[G

QZQ 2593

hdu 2089 数位DP初探

数位DP 优秀的 教学 :http://wenku.baidu.com/link?url=o3ER_gVCyB0qcKthM-Y8vPtAGZ_u5bzOu_gUCUhPcXC6YfaSDgtBSXNEEvvGvSzyuDE9TULcPNsDrRd9IUtQVHeKUVrnPUjyfWjCly_J7Xq #include #include #include #include #defin

QZQ 2314

hdu 数位DP汇总 + hdu 4507 题解

基础教学 + 初探hdu2089题解:http://blog.youkuaiyun.com/techmonster/article/details/50273967 进阶 【重要模板】(数位dp几乎都是这个模板):http://blog.youkuaiyun.com/techmonster/article/details/50275783 数位DP  优秀题目 hdu 4507  (注意,仍是上面的模板)

QZQ 2068

Hdu 5514 类莫比乌斯函数 容斥原理

题意:有m个石子围成一圈, 有n只青蛙从跳石子, 都从0号石子开始, 每次越过a[i]个石子 问所有被至少踩过的石子的序号之和思路: 设所有踩到的石头下标集合为 P,题目求sum(P),青蛙集合为a 总共m个石子,青蛙每次跳ai。等价于m个石子,青蛙每次跳gcd(m,ai)。并且 当 gcd(m,ai)|k 时,第k个石头可以背踩到。 先对青蛙集合a做一个等价替代,ai = gcd(m,a

QZQ 2025

hdu 5713 K个联通块 2016百度之星复赛1002 DP

用dp[i][j] 表示 状态i分成k个联通块的方案数。状态i的二进制第j位代表编号为j的点。 f[i]表示状态i内删边,仍保持一个联通块的方案数。 则有 转移方程 dp[i][k] = sum(dp[i-j][k-1]*f[j]).   j 是i的子状态,但不是i的所有子状态。为什么呢? 假设i 表示 点集 {1,2,3,4} 然后分成 {1,2} {3,4} 如果枚举所有子状态,则在j

QZQ 1979

hdu 1053 哈夫曼树 优先队列

此题关于哈夫曼编码。 哈夫曼树(霍夫曼树)又称为最优树. 基本术语: 1、路径和路径长度 在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路中分支的数目称为路径长度。若规定根结点的层数为1,则从根结点到第L层结点的路径长度为L-1。 2、结点的权及带权路径长度 若将树中结点赋给一个有着某种含义的数值,则这个数值称为该结点的权。结点的带权

QZQ 1526
上一篇: hdu 5621 KK's Point Bestcoder #71 1002
下一篇: 最大团 极大团 Bron–Kerbosch算法 poj 2989
QZQmmmm
博客等级 码龄11年 77粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值