URAL - 1427-SMS

题目大意:给你长度为n的字符串(n<=1e6),让你对它进行划分,如果一段里面只有字母和

空格可以包含m(m<=1e5)个,如果有其他字符只能包含n个,问你最少需要分成几段。

思路:划分dp,dp[ i ] 表示以i为结束最少需要分成多少段,复杂度n*m,不能接受,我们考虑贪心

每次划分使其中包含的字符尽可能多,如果dp[ i ]没有赋值则直接跳过。

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
const int inf=0x3f3f3f3f;
char s[N],g[3];
int n,m,dp[N],ans;
bool p[N];
bool judge(char x)
{
    if(x>=‘a‘ && x<=‘z‘) return true;
    if(x>=‘A‘ && x<=‘Z‘) return true;
    if(x==‘ ‘) return true;
    return false;
}
int main()
{
    memset(dp,inf,sizeof(dp));
    dp[0]=0;
    ans=inf;
    scanf("%d%d",&n,&m);
    gets(g);
    gets(s+1);
    int len=strlen(s+1);
    for(int i=0;i<=len;i++)
    {
        if(dp[i]==inf) continue;
        bool flag=true;
        int up=m;
        for(int j=1;j+i<=len && j<=m;j++)
        {
            if(!judge(s[i+j])) flag=false,up=n;
            if(j<=n && !flag)
            {
                int to=min(len,i+n);
                dp[to]=min(dp[to],dp[i]+1);
                break;
            }
            else if(j>n && !flag)
            {
                int to=min(len,i+j-1);
                dp[to]=min(dp[to],dp[i]+1);
                break;
            }
        }
        if(up==m) dp[min(i+m,len)]=min(dp[min(i+m,len)],dp[i]+1);
    }
    //cout<<dp[3]<<endl;
    printf("%d\n",dp[len]);
    return 0;
}

时间: 2024-08-13 09:57:25

URAL - 1427-SMS的相关文章

URAL 1427. SMS (线性dp)

题目大意是:给你一串字符串,然后让你去截看看最少能截成几分.如果只包含大小写字母和空格就可以最多m个截成一个,有其他的字符那就最多n个截成一个. 数据很多直接dp[i][j]空间与时间都不能承受.dp[i][0]表示只有字母和空格,dp[i][1]表示有其他的字符.vis[i][0],vis[i][1]动态的记录长度.时间就会降为O(n)空间降为2*n. 1427. SMS Time limit: 0.5 second Memory limit: 64 MB Background Mobile

POJ 2774 Long Long Message &amp;&amp; URAL 1517. Freedom of Choice(求最长重复子序列)

两个题目意思差不多,都是让求最长公共子串,只不过poj那个让输出长度,而URAL那个让输出一个任意的最长的子串. 解体思路: Long Long Message Time Limit: 4000MS   Memory Limit: 131072K Total Submissions: 22313   Accepted: 9145 Case Time Limit: 1000MS Description The little cat is majoring in physics in the cap

SMS消息传递

<Button     android:id="@+id/send"     android:layout_width="wrap_content"     android:layout_height="wrap_content"     android:text="Send SMS"     android:onClick="onClick"/> public void onClick(Vie

Ural 1081 Binary Lexicographic Sequence(DP)

题目地址:Ural 1081 先用dp求出每个长度下的合法序列(开头为1)的个数.然后求前缀和.会发现正好是一个斐波那契数列.然后每次判断是否大于此时长度下的最少个数,若大于,说明这一位肯定是1,若小于,则肯定是0.就这样不断输出出来即可. 代码如下: #include <iostream> #include <cstdio> #include <string> #include <cstring> #include <stdlib.h> #in

URAL 1684. Jack&#39;s Last Word KMP

题目来源:URAL 1684. Jack's Last Word 题意:输入a b 把b分成若干段 每一段都是a的前缀 思路:b为主串 然后用a匹配b 记录到b的i位置最大匹配的长度 然后分割 分割的时候要从后往前 如果a = abac b = abab 那么如果从前往后 首先覆盖了aba 然后b就不能覆盖了 从后往前就可以了 首先覆盖ab 下一次还是ab 因为已经记录了到i位置的最大匹配长度 根据长度从末尾倒退 每次倒退的时候只要是最大的匹配的长度 因为如果在某一次的递推 记录的最大匹配的前缀

信息会话Thread_id异常处理(MMS草稿修改收件人,SMS新信息丢失thread数据)

1, sms收到信息,thread表没有create新数据.导致一直有一条未读信息数量显示,但在会话列表中却看不到. (偶现. 解决方法:查询未读信息时,过滤thread丢失的sms信息.先规避此Bug) 分析:Ril层接收新信息会通过Framework发通知——android.provider.Telephony.SMS_DELIVER com.android.mms.transaction.PrivilegedSmsReceiver接收广播,应用程序MMS开始处理 protected voi

Spring Boot 之注解@Component @ConfigurationProperties(prefix = &quot;sms&quot;)

从spring-boot开始,已经支持yml文件形式的配置,@ConfigurationProperties的大致作用就是通过它可以把properties或者yml配置直接转成对象 例如: 配置文件: sms.url=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX sms.appkey=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX sms.secret=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX sms.signName=XXXXXXXXXXXXX

Java通过SMS短信平台实现发短信功能

在项目中使用过发短信的功能,但那个由于公司内部的限制很麻烦,今天在网上找到一个简单的,闲来无事就把它记录如下: 本程序是通过使用中国网建提供的SMS短信平台实现的(该平台目前为注册用户提供5条免费短信,3条免费彩信,这足够用于我们测试用了.在使用前需要注册,注册地址为http://sms.webchinese.cn/reg.shtml),下面是程序源码: /** * @Author dengsilinming * @Date 2012-9-18 * */ package com.dengsili

错误 java.lang.ClassCastException: com.ylpw.sms.YZZYSenderUtil cannot be cast to ResourceBundle

出现错误: java.lang.ClassCastException: com.ylpw.sms.YZZYSenderUtil cannot be cast to ResourceBundle 百度搜索错误,没有结果.谷歌搜索:http://stackoverflow.com/questions/5694017/specify-java-localization-file 解决方法,修改了一行代码 prop = ResourceBundle.getBundle(this.getClass().g

ural 1272. Non-Yekaterinburg Subway

1272. Non-Yekaterinburg Subway Time limit: 1.0 secondMemory limit: 64 MB A little town started to construct a subway. The peculiarity of the town is that it is located on small islands, some of them are connected with tunnels or bridges. The mayor is