日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

URAL 1427. SMS(DP+单调队列)

發布時間:2025/3/14 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 URAL 1427. SMS(DP+单调队列) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目鏈接

我用的比較傳統的辦法。。。單調隊列優化了一下,寫的有點搓,不管怎樣過了。。。兩個單調隊列,存兩個東西,預處理一個標記數組存。。。

1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <queue> 5 #include <map> 6 #include <ctime> 7 #include <cmath> 8 #include <algorithm> 9 using namespace std; 10 #define INF 1000000 11 char str[200000]; 12 int dp[200000]; 13 int pre[200000]; 14 int que1[200000]; 15 int que2[200000]; 16 int judge(char s) 17 { 18 if(s <= 'Z'&&s >= 'A') 19 return 1; 20 else if(s <= 'z'&&s >= 'a') 21 return 1; 22 else if(s == ' ') 23 return 1; 24 else 25 return 0; 26 } 27 int main() 28 { 29 int n,m,i,j,len,str1,end1,str2,end2; 30 scanf("%d%d%*c",&n,&m); 31 gets(str); 32 len = strlen(str); 33 for(i = 0; i < len; i ++) 34 { 35 if(judge(str[i])) 36 { 37 for(j = i; j < len; j ++) 38 { 39 if(judge(str[j])) 40 pre[j] = i; 41 else 42 { 43 i = j; 44 break; 45 } 46 } 47 if(j == len) break; 48 } 49 } 50 for(i = 1;i <= len;i ++) 51 dp[i] = INF; 52 str1 = 0;end1 = 1; 53 str2 = 0;end2 = 1; 54 que1[0] = que2[0] = 0; 55 for(i = 1;i <= len;i ++) 56 { 57 dp[i] = dp[que1[str1]] + 1; 58 if(judge(str[i-1])) 59 { 60 if(str2 < end2) 61 dp[i] = min(dp[i],dp[que2[str2]]+1); 62 } 63 else 64 { 65 str2 = end2 = 0; 66 } 67 if(i == len) continue; 68 while(str1 < end1&&dp[i] <= dp[que1[end1-1]]) 69 end1 --; 70 que1[end1++] = i; 71 while(str1 < end1&&i - que1[str1] >= n) 72 str1 ++; 73 if(judge(str[i])) 74 { 75 while(str2 < end2&&dp[i] <= dp[que2[end2-1]]) 76 end2 --; 77 que2[end2++] = i; 78 while(str2 < end2&&que2[str2] < pre[i]) 79 str2 ++; 80 while(i - que2[str2] >= m&&str2 < end2) 81 str2 ++; 82 } 83 } 84 printf("%d\n",dp[len]); 85 return 0; 86 }

?

轉載于:https://www.cnblogs.com/naix-x/p/3315207.html

總結

以上是生活随笔為你收集整理的URAL 1427. SMS(DP+单调队列)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。