【DP】 会长晨刷记

 

问题 B: 会长晨刷记

时间限制: 1 Sec  内存限制: 128 MB
提交: 105  解决: 36
[提交][状态][讨论版]

题目描述

晨刷是个好活动!ACM会长路明非特别热衷于晨刷,尤其是路程变长时间变短了之后。
可是最近天天下雨,晨刷的路上有各种水坑,踩到水坑就会弄湿美美的鞋子和裤子,
因此会长很烦恼:还让不让人愉快的晨刷了?!
于是会长想知道自己该如何巧妙避开各种水坑。
假设从起点到终点有n米,其中有m个水坑是需要避开的,会长每次可以走1米2米3米或者4米。
请问在这种情况下,会长有多少种方式避开水坑到达终点。

输入

输入包含多组输入,每组测试数据第一行两个整数n,m(n,m<=1000),第二行m个整数,a[1],a[2],a[3],a[4].....a[m],表示水坑的位置(即在 a[i] (1<=i<=m) 米处有水坑)

 

输出

输出避开水坑到达终点的方法数。由于答案会很大,输出答案对 20152016 取模

 

样例输入

4 2
1 3

样例输出

2

 

//简单dp
//dp[n]=dp[n-1]+dp[n-2]+dp[n-3]+dp[n-4]
//两个wa点
//1、给你的水池不一定排好序
//2、要是终点处有水池,方案数为0
#include <bits/stdc++.h>
using namespace std;
int n,m;
const int maxx=1005;
int a[maxx];
int dp[maxx];
int main()
{
    while(~scanf("%d%d",&n,&m))
    {
        map <int,int> M;
        memset(a,0,sizeof(a));
        memset(dp,0,sizeof(dp));
        for(int i=1; i<=m; i++)
        {
            scanf("%d",&a[i]);
            M[a[i]]=1;
        }
        sort(a+1,a+m+1);
        if(a[m]==n) {printf("0\n");continue;}
        dp[0]=1;
        for(int i=1; i<=n; i++)
        {
            for(int j=1; j<=4; j++)
            {
                int p=0;
                if(i-j<0) continue;
                if(M[i-j]==1) continue;
                dp[i]=(dp[i]+dp[i-j])%20152016;
            }
        }
        printf("%d\n",dp[n]);
    }
    return 0;
}

 

会长短信的进来哈

05-11

rn我把CMPP3.0的TP_udhi 设为1,Msg_Fmt设为8 rn内容体前6个字节、7个字节作为消息头的超长短信经过分割后通过CMPP3.0发到Nokia,索爱,moto,三星 手机上,Nokia 对于内容体前6个字节,7个字节都支持,索爱,moto都不支持,我测试的手机支持长短信拼接的,手机对手机都没问题.rnrn而且我将Nokia,索爱,moto,三星手机编辑的超长短信发到短信服务器上,发现他们在每条短信前面都是按照"05 00 03 39 02 01 " 内容体前6个字节来做的,但是按照这种格式下发给moto,三星手机 就不能自动拼接.rnrn有知道是怎么回事吗,希望能答复小第,在线等!rnrnrnrn以下是参考资料rnrn基于cmpp协议的超长短信格式- -rn rnrnrn基于cmpp协议的超长短信格式rnrn//当短信超过70个汉字时短信的第一部分rnE0 00 00 00 //4byte 数据总长度rn05 00 00 00 //4byte 命令号rn3F 38 0B 01 //4byte 流水号rn31 3B 6E 0B A2 84 61 F0 //8byte msg_idrn30 35 37 37 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //21byte Dest_Idrn00 00 00 00 00 00 00 00 00 00 //10byte Service_Idrn00 //1byte TP_pidrn01 //1byte TP_udhirn08 //1byte Msg_Fmtrn38 36 31 33 37 35 30 32 34 33 33 30 33 00 00 00 00 00 00 00 00 //21byte Src_terminal_Idrn00 //Registered_Deliveryrn8B //Msg_Lengthrnrn06 08 04 00 2A //06表示短信正文内容从6+2的位置开始读取rn02 //超长短信总条数rn01 //序号rn00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 00 61 4E 00 4E 2A 4E BA 6C 11 4E 3B 4E 49 52 A1 5B 9E 57 28 8F D9 4E 2A 4E BA 6C 11 4E 3B 4E 49 52 A1 5B 9E 57 28 8F D9 4E 2A 4E BA 6C 11 4E 3B 4E 49 52 A1 5B 9E 57 28 8F D9 4E 2A 4E BA 6C 11 4E 3B 4E 49 52 A1 5B 9E 57 28 8F D9 4E 2A 4E BA 6C 11 4E 3B 4E 49 52 A1 5B 9E 57 28 8F D9 4E 2A 4E BA 6C 11 4E 3B 00 61 00 61 00 61 00 61 00 61 00 61 //短信内容rn00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 rn00 00 00 00 00 00 00 00 //8byte Reservedrnrnrn//当短信超过70个汉字时短信的第二部分rn78 00 00 00rn05 00 00 00rn49 38 0B 01rn31 3B 74 8B A2 84 62 0Drn30 35 37 37 35 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00rn00 00 00 00 00 00 00 00 00 00 rn00rn01rn08rn38 36 31 33 37 35 30 32 34 33 33 30 33 00 00 00 00 00 00 00 00rn00rn23rnrn06 08 04 00 2A //06表示短信正文内容从6+2的位置开始读取rn02 //超长短信总条数rn02 //序号rn00 61 00 61 00 61 00 61 00 62 00 62 00 62 00 62 00 62 00 62 00 62 00 62 00 62 00 62 //短信内容rn00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 rn00 00 00 00 00 00 00 00 00 //8byte Reserved rn【虎.无名】我测试了2个超长短信,前者是121个中文UTF-16BE,后者是170个ASCII字符,使用Nokia6630发送,在服务上接收到的短信内容部分如下:rn.------------------------------rnMsg1[140B] = :05:00:03:0A:02:01:00:31:00:38:00:36:00:30:00:2A:00:23:00:39:00:32:00:37:00:30:00:32:00:36:00:38:00:39:00:23:00:20:5E:02:51:6C:5B:89:5C:40:95:E8:53:E3:8F:B9:FF:0C:62:37:8B:C1:7A:97:53:E3:52:9E:74:06:FF:0C:4E:00:54:68:30:02:5F:C3:75:35:56:FE:FF:1A:4E:07:72:3D:52:9B:74:F6:88:C5:00:A5:00:34:00:35:00:2F:00:33:00:30:7C:92:FF:0C:5F:C6:8F:9B:00:28:66:5A:00:29:00:A5:00:36:00:7E:00:38:00:2F:00:31:00:30:7C:92:30:02:4E:BA:62:4DrnMsg2[114B] = :05:00:03:0A:02:02:FF:0C:94:C1:8D:EF:68:65:FF:0C:4E:94:91:CC:72:4C:FF:0C:4E:09:6E:58:7A:D9:FF:0C:8D:EF:53:57:FF:0C:54:1B:51:EF:5B:BE:99:86:30:02:70:6B:8F:66:7A:D9:00:32:00:30:00:32:8D:EF:8F:66:53:BB:51:6C:5B:89:5C:40:30:02:73:ED:8F:66:4E:0B:53:48:51:6D:70:B9:53:41:52:06:30:02:9F:50:77:09:53:D1:FF:0C:51:49:58:4C:58:4C:30:02:67:68:5A:07:30:02rnHead[6B] = 0x0500030A0201 【总共2条的第一条】rnBody[67C] = 1860*#92702689# 市公安局门口边,户证窗口办理,一周。心电图:万爽力瓶装?45/30粒,忆辛(晚)?6~8/10粒。人才rnHead[6B] = 0x0500030A0202rnBody[54C] = ,铁路桥,五里牌,三湘站,路南,君凯宾馆。火车站202路车去公安局。班车下午六点十分。齐眉发,光塌塌。杨娇。rnTOTAL[121C] = 1860*#92702689# 市公安局门口边,户证窗口办理,一周。心电图:万爽力瓶装?45/30粒,忆辛(晚)?6~8/10粒。人才,铁路桥,五里牌,三湘站,路南,君凯宾馆。火车站202路车去公安局。班车下午六点十分。齐眉发,光塌塌。杨娇。rn.------------------------------rnMsg1[159B] = :82:40:9D:20:24:9C:31:32:33:34:35:36:37:38:39:30:31:32:33:34:35:36:37:38:39:30:31:32:33:34:35:36:37:38:39:30:31:32:33:34:35:36:37:38:39:30:31:32:33:34:35:36:37:38:39:30:31:32:33:34:35:36:37:38:39:30:31:32:33:34:35:36:37:38:39:30:31:32:33:34:35:36:37:38:39:30:31:32:33:34:35:36:37:38:39:30:31:32:33:34:35:36:37:38:39:30:31:32:33:34:35:36:37:38:39:30:31:32:33:34:35:36:37:38:39:30:31:32:33:34:35:36:37:38:39:30:31:32:33:34:35:36:37:38:39:30:31:32:33:34:35:36:37:38:39:30:31:32:33rnMsg2[23B] = :82:40:9D:20:24:24:34:35:36:37:38:39:30:31:32:33:34:35:36:37:38:39:30rnHead[6B] = 0x82409D20249C 【???看不懂呀???】rnBody[153C] = 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123rnHead[6B] = 0x82409D202424rnBody[17C] = 45678901234567890rnTOTAL[170C] = 12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890rnrn参考:http://www.learnsky.com/bbs/printpage.asp?BoardID=6&ID=31rn参考:http://www.blogjava.net/bubaishui/articles/58214.htmlrn超长短信:短信内容超过70个汉字,提交给网关时候需要分成多条,但是用户手机接收时候是一条(sp角度,手机发送长短信概念一样)。rnrn 在cmpp协议里,CMPP­_SUBMIT消息定义中有相应的参数配置: rn TP_udhi :0代表内容体里不含有协议头信息 1代表内容含有协议头信息(长短信,push短信等都是在内容体上含有头内容的)当设置内容体包含协议头,需要根据协议写入相应的信息,长短信协议头有两种:rn 6位协议头格式:05 00 03 XX MM NNrn byte 1 : 05, 表示剩余协议头的长度rn byte 2 : 00, 这个值在GSM 03.40规范9.2.3.24.1中规定,表示随后的这批超长短信的标识位长度为1(格式中的XX值)。rn byte 3 : 03, 这个值表示剩下短信标识的长度rn byte 4 : XX,这批短信的唯一标志,事实上,SME(手机或者SP)把消息合并完之后,就重新记录,所以这个标志是否唯rn 一并不是很 重要。rn byte 5 : MM, 这批短信的数量。如果一个超长短信总共5条,这里的值就是5。rn byte 6 : NN, 这批短信的数量。如果当前短信是这批短信中的第一条的值是1,第二条的值是2。rn 例如:05 00 03 39 02 01 rnrn 7位的协议头格式:06 08 04 XX XX MM NNrn byte 1 : 06, 表示剩余协议头的长度rn byte 2 : 08, 这个值在GSM 03.40规范9.2.3.24.1中规定,表示随后的这批超长短信的标识位长度为2(格式中的XX值)。rn byte 3 : 04, 这个值表示剩下短信标识的长度rn byte 4-5 : XX XX,这批短信的唯一标志,事实上,SME(手机或者SP)把消息合并完之后,就重新记录,所以这个标志是否唯一并不是很重要。rn byte 6 : MM, 这批短信的数量。如果一个超长短信总共5条,这里的值就是5。rn byte 7 : NN, 这批短信的数量。如果当前短信是这批短信中的第一条的值是1,第二条的值是2。rn 例如:06 08 04 00 39 02 01 rnrn 到此,长短信的发送设置基本完成,但是有一点要注意:Src_Id 协议里这个字段在一条长短信中必须要一样,不然手机会解析成三条, rn 并三条都 是错误短信。 rn 对于sp来说,长短信上行,按照协议反过来解析:rn

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试