hdu3068馬拉車

其實馬拉車還真是最好理解的算法(感覺初中的時候好像講過類似的,但是當時就沒有認真聽)

沒想到一個簡單的優化能變成O(n),感覺碉堡

不說了,馬拉車裸題,我在寫的時候只保留了id,沒保留mx,希望能形成一種代碼習慣吧

 1 #include <cstdio>
 2 int n;char ch;
 3 int p[220002];
 4 char a[220002];
 5 int min(int a,int b){return(a<b)?a:b;}
 6 int max(int a,int b){return(a>b)?a:b;}
 7 int get(int k){return (k&1)?p[k]/2*2:(p[k]+1)/2*2-1;}
 8 void add(int i)
 9 {
10     int u=i-p[i],v=i+p[i];
11     while((a[u]==a[v]) && (u>0) && (v<=n))
12         u--,v++,p[i]++;    
13 }
14 int main()
15 {
16     while((ch<'a' || ch>'z')&&(ch!=EOF)) ch=getchar();
17     while(ch!=EOF)
18     {
19         n=1;a[1]='0';
20         for(;ch>='a' && ch<='z';ch=getchar())
21             a[++n]=ch,a[++n]='0';
22         int id=0;
23         for(int i=1;i<=n;i++)
24         {
25             if(i<id+p[id])
26             {
27                 p[i]=min(p[id*2-i],id+p[id]-i);
28                 if(i+p[i]==id+p[id])
29                     add(i);
30             }
31             else
32                 p[i]=1,add(i);
33             if(i+p[i]>p[id]+id)
34                 id=i;
35         }
36         int ans=0;
37         for(int i=1;i<=n;i++)
38             ans=max(ans,get(i));
39         printf("%d\n",ans);
40         while((ch<'a' || ch>'z')&&(ch!=EOF)) ch=getchar();
41     }
42     return 0;
43 }

?

轉載于:https://www.cnblogs.com/wanglichao/p/5798856.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256533.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256533.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256533.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

CAD——將圖形移動到指定點的方法(此處以捕捉坐標系原點為例)

1、在CAD中畫一個正方形&#xff0c;沒有任何角點在坐標原點上 2、點擊修改工具欄的“移動命令”&#xff0c;選擇剛剛畫好的圖形&#xff0c;選擇一個點為第一個基點&#xff1b; 3、先輸入#號&#xff08;shift3&#xff09;,再輸入0,0&#xff0c;用英文逗號隔開&#xff0c…

閱讀推薦——深入淺出Mesos

深入淺出Mesos&#xff08;一&#xff09;&#xff1a;為軟件定義數據中心而生的操作系統http://www.infoq.com/cn/articles/analyse-mesos-part-01 深入淺出Mesos&#xff08;二&#xff09;&#xff1a;Mesos的體系結構和工作流http://www.infoq.com/cn/articles/analyse-mes…

MySQL主從復制(二)

1<span style"font-family:sans-serif;">主從架構中&#xff1a;從node是不接受w操作的&#xff0c;否則可能會導致數據不一致。</span><br> 一、復制架構中應該注意的問題&#xff1a; 1.限制slave為只讀模式 可以設置在啟動參數中。 > show g…

深度學習之pytorch(二) 數據并行

又是好久沒更新博客&#xff0c;最近瑣事纏身&#xff0c;寫文檔寫到吐。沒時間學習新的知識&#xff0c;剛空閑下來立刻就學習之前忘得差不多得Pytorch。Pytorch和tensorflow差不多&#xff0c;具體得就不多啰嗦了&#xff0c;覺得還有疑問的童鞋可以自行去官網學習&#xff0…

JS 轉換數字為大寫

1 function toUpper(n) {2 n n;3 var unit 十百千萬;4 var num 一二三四五六七八九 ;5 var array new Array();6 for (var in.length; i > 0; i--){7 var numIndex parseInt(n.charAt(i-1))-1;8 if(n…

ANSYS——ANSYS后處理操作技巧與各類問題良心大總結

目錄 1.ANSYS后處理時如何按灰度輸出云圖&#xff1f; 2 將云圖輸出為JPG 3.怎么在計算結果實體云圖中切面? 4.非線性計算過程中收斂曲線實時顯示 5.運用命令流進行計算時,一個良好的習慣是: 6.應力圖中左側的文字中&#xff0c;SMX與SMN分別代表最大值和最小值 7.在非…

容器的綜合應用:文本查詢程序

需求 程序讀取用戶指定的任意文本文件&#xff0c;允許用戶從該文件中查找單詞。查詢結果是該單詞出現的次數&#xff0c;并列出每次出現所在行&#xff0c;如果某單詞在同一行中多次出現&#xff0c;程序將只顯示該行一次。行號按升序顯示&#xff0c;即第 7 行應該在第 9 行之…

Anaconda 安裝操作及遇到的坑

最近剛用Pytorch&#xff0c;編譯開源代碼的時候發現缺少n個package&#xff0c;原來是之前在Anaconda3 創建的虛擬環境各自是獨立的&#xff0c;tensorflow下安裝的不能在別的環境下使用&#xff0c;所以要重新安裝。然而關鍵是國內各種屏蔽資源&#xff0c;無法FQ去直接下載安…

IE瀏覽器歷史版本圖標大全

上個月IE團隊慶祝了IE的15周歲生日&#xff0c; 并曬了曬IE各個歷史版本的圖標&#xff1a; Internet Explorer 1.0 圖標 Internet Explorer 2.0 圖標 Internet Explorer 3.0 圖標 Internet Explorer 4.0 圖標 Internet Explorer 5.0 圖標 Internet Explorer 6.0 圖標 Internet…

7.Mybatis關聯表查詢(這里主要講的是一對一和一對多的關聯查詢)

視頻地址&#xff1a;http://edu.51cto.com/sd/be679 在Mybatis中的管理表查詢這里主要介紹的是一對一和一對多的關聯查詢的resultMap的管理配置查詢&#xff0c;當然你也可以用包裝類來實現。不過這里不說&#xff0c;做關聯查詢的步驟可以簡單的總結為以下的幾步&#xff1a;…

ANSYS——查看某一截面的云圖分布(也叫做切片圖)

1.確定截面的位置 此處以圖中紅色處截面為例 2.將工作平面經過坐標變化移動到指定截面處(工作平面的XY平面與截面重合) 工作平面坐標系默認是與總體坐標系重合的,這里是先平移再進行旋轉

深度學習之keras (一) 初探

之前一段時間里&#xff0c;學習過tensorflow和Pytorch也寫了點心得&#xff0c;目前是因為項目原因用了一段時間Keras&#xff0c;覺得很不錯啊&#xff0c;至少從入門來說對新手極度友好&#xff0c;由于keras是基于tensoflow的基礎&#xff0c;相當于tensorflow的高級API吧&…

swift:高級運算符(位運算符、溢出運算符、優先級和結合性、運算符重載函數)...

swift&#xff1a;高級運算符 http://www.cocoachina.com/ios/20140612/8794.html 除了基本操作符中所講的運算符&#xff0c;Swift還有許多復雜的高級運算符&#xff0c;包括了C語和Objective-C中的位運算符和移位運算。 不同于C語言中的數值計算&#xff0c;Swift的數值計算默…

收集、報告或保存系統活動信息:sar命令

2019獨角獸企業重金招聘Python工程師標準>>> 索引 sar命令的使用常用方法 查看網絡設備&#xff08;網卡&#xff09;的狀態信息查看socket使用情況查看cpu使用情況(默認)查看內存和交換空間使用情況查看內存的統計信息查看tty設備的活動狀態查看等待運行的進程數和…

【GOF23設計模式】原型模式

【GOF23設計模式】原型模式 來源&#xff1a;http://www.bjsxt.com/ 一、【GOF23設計模式】_原型模式、prototype、淺復制、深復制、Cloneable接口 淺復制 1 package com.test.prototype;2 3 import java.util.Date;4 5 /**6 * 淺復制7 */8 public class Sheep implements C…

ANSYS——自定義的梁截面中心(法線節點)的偏置,詳細全面

目錄 1、ANSYS梁的確定 2.關于梁截面的一些名詞 總體坐標系 梁截面坐標系 梁單元的坐標系

Deepfacelab 小白教程

不小心入了AI換臉的坑&#xff0c;但是感覺AI換臉很有意思&#xff0c;第一次感覺科研使我快樂。 目錄 一、AI換臉軟件簡介 二、Deepfacelab下載安裝 三、Deepfacelab Demo實現 四、Deepfacelab 填坑 五、總結 一、AI換臉軟件簡介 這個沒有具體使用過&#xff0c;目前我…

Underscore.js 的模板功能

Underscore是一個非常實用的JavaScript庫&#xff0c;提供許多編程時需要的功能的支持&#xff0c;他在不擴展任何JavaScript的原生對象的情況下提供很多實用的功能。 無論你寫一段小的js代碼&#xff0c;還是寫一個大型的HTML5應用&#xff0c;underscore都能幫上忙。目前&…

ANSYS——查看剖面圖的應力分布云圖以及工作平面的相關設置

剖面圖和切片圖其實差不多,只是切片圖只有一個截面,而剖面圖是切去一部分保留另一部分模型,不但可以看到截面處應力分布還可以看到剩余模型的應力分布 切片應力云圖可見:https://blog.csdn.net/qq_45769063/article/details/106357700 1.剖面云圖的查看 首先將工作平面的…

2016.8.2

高端內存映射方式 高端內存映射分為三種&#xff1a;永久映射、臨時映射和非連續動態內存映射。高端內存一般是指896MB以上的頁框&#xff0c;這段區間內核一般不能直接訪問。 1.永久映射 永久內核映射允許內核建立高端頁框到內核地址空間的長期映射。它們使用主內核頁表中的一…