codeforces B. Pasha and String(貪心)

題意:給定一個長度為len的字符序列,然后是n個整數,對于每一個整數ai,
將字符序列區間為[ai,len-ai+1]進行反轉。求出經過n次反轉之后的序列!

 1 /*
 2      思路1:將區間為偶數次的直接去掉!對剩下的區間進行反轉。超時了,智商上的壓制... 
 3 */ 
 4 #include<iostream> 
 5 #include<cstdio> 
 6 #include<algorithm> 
 7 #include<stack>
 8 #include<cstring>
 9 #include<vector>
10 #define N 100005
11 using namespace std;
12 char mp[2*N];
13 int num[N];
14 int cnt[N*2];
15 
16 void my_swap(int &a, int &b){
17     a^=b;
18     b^=a;
19     a^=b;
20 }
21 
22 void my_reverse(int x, int y){
23     for(int i=x, j=y; i<j; ++i, --j){
24         char tmp = mp[i];
25         mp[i] = mp[j];
26         mp[j] = tmp;
27     }
28 }
29 
30 int main() {
31      scanf("%s", mp+1);
32     int m, mm=0;
33     cin>>m; 
34     for(int i=0; i<m; ++i){
35         scanf("%d", &num[i]);
36         ++cnt[num[i]];
37     }
38     
39     int len = strlen(mp+1);
40     for(int i=1; i<=len/2; ++i){
41         if(cnt[num[i]] + cnt[len-num[i]+1])%2!=0){
42             int x = num[i];
43             int begin = x, end= len-x+1;
44             if(begin > end) my_swap(begin, end);
45             my_reverse(begin, end);
46         }
47     }
48     printf("%s\n", mp+1);
49 }
 1 /*
 2     思路2:仔細分析,每一個反轉的區間左右是對稱的,如果[ai, len-ai+1]區間進行反轉,
 3     那么就有str[ai]與str[len-ai+1]交換,str[ai+1]與str[len-ai]交換.....
 4     也就是ai位置發生交換,那么ai+1,ai+2...len/2也一定發生交換。如果ai位置的交換的次數
 5     為偶數就不用交換,為奇數就進行交換! 
 6 */
 7 #include<iostream> 
 8 #include<cstdio> 
 9 #include<algorithm> 
10 #include<stack>
11 #include<cstring>
12 #include<vector>
13 #define N 100005
14 using namespace std;
15 char mp[2*N];
16 int cnt[N*2];//統計每一個位置交換的次數 
17 
18 int main() {
19     scanf("%s", mp+1);
20     int m, mm=0;
21     scanf("%d", &m) ;
22     int len = strlen(mp+1);
23     while(m--){
24         int x;
25         scanf("%d", &x);
26         ++cnt[x], ++cnt[len-x+1];
27     }
28     
29     for(int i=2; i<=len/2; ++i)
30         cnt[i] += cnt[i-1];//第i個位置交換,那么第i+1,i+2..len/2個位置也一定發生交換 
31     
32     for(int i=1; i<=len/2; ++i)
33         if(cnt[i]%2!=0)//奇數位置交換 
34             swap(mp[i], mp[len-i+1]);
35     printf("%s\n", mp+1);
36 }

?

轉載于:https://www.cnblogs.com/hujunzheng/p/4382105.html

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

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

相關文章

java簡單詞法分析器(源碼下載)

java簡單詞法分析器 : http://files.cnblogs.com/files/hujunzheng/%E7%AE%80%E5%8D%95%E8%AF%8D%E6%B3%95%E5%88%86%E6%9E%90%E5%99%A8.zip 轉載于:https://www.cnblogs.com/hujunzheng/p/4383880.html

java 模擬qq源碼

java 模擬qq源碼&#xff1a; http://files.cnblogs.com/files/hujunzheng/QQ--hjzgg.zip 轉載于:https://www.cnblogs.com/hujunzheng/p/4390307.html

藍橋杯 算法提高 日期計算

算法提高 日期計算 時間限制&#xff1a;1.0s 內存限制&#xff1a;256.0MB問題描述已知2011年11月11日是星期五&#xff0c;問YYYY年MM月DD日是星期幾&#xff1f;注意考慮閏年的情況。尤其是逢百年不閏&#xff0c;逢400年閏的情況。 輸入格式輸入只有一行YYYY MM DD 輸出…

java JFileChooser選擇文件和保存文件

//文件過濾器import java.io.File;import javax.swing.filechooser.FileFilter;public class MyFilter extends FileFilter{private String[] filterString null;public MyFilter(String[] filStrings){this.filterString filStrings;}public boolean accept(File file){if(f…

指針詳解

c語言相比其他高級語言來說,更接近于對計算機硬件的操作,而指針的應用更是為我們對硬件的操作插上了翅膀,所以指針是嵌入式編程不可少的一部分,在一定意義上說,指針是c語言的精髓。 歡迎加入嵌入式學習群:559601187 一、 什么是指針 在計算機中,數據時存放在內存中的,…

反質數問題,求不大于n的最大反質數

反質數&#xff1a;設f(n)表示n個約數的個數&#xff0c;如果對于任意x有0<x<n, f(x) < f(n),那么n就是一個反質數我們都知道對于任意一個數n&#xff0c;都可以用質數乘積的形式表示出來&#xff1a;x p1^k1p2^k2...pn^kn一個數n如果可以表示成 n p1^k1 p2^k2, 那…

c語言之結構

今天來說一下C語言里的結構體(struct)、共用體(l聯合體)union、枚舉。 歡迎加入嵌入式學習群&#xff1a;559601187 &#xff08;一&#xff09;結構體&#xff1a;struct 1.1 概念 是一種自定義的數據類型結構體是構造類型的一種不同數據類型的集合地址空間連續&#xff0c;…

貓和老鼠 藍橋杯/手速/暴力練習賽(暴力搜索)

貓和老鼠 藍橋杯&#xff0f;手速&#xff0f;暴力練習賽 【題目描述】貓和老鼠在10*10 的方格中運動&#xff0c;例如&#xff1a;*...*...........*......*...*...............*.C....*.....*......*........M......*...*.*.....*.*......C貓&#xff08;CAT&#xff09;M老鼠…

STM32 4*4矩陣按鍵

本文章講述了如何用STM32編寫4*4矩陣按鍵程序&#xff0c;先簡單介紹一下掃描的基本方法&#xff1a;1.反轉法 2.行列掃描。本文主要介紹行列掃描 歡迎加入嵌入式學習群&#xff1a;559601187 &#xff08;一&#xff09;代碼如下 /*****************************************…

編譯原理:正規式轉變成DFA算法

//將正規式轉變成NFApackage hjzgg.formal_ceremony_to_dfa;import java.util.ArrayList;class Edge{public int u, v;public char key;public Edge(int u, int v, char key) {super();this.u u;this.v v;this.key key;}Overridepublic String toString() {return u "…

C語言實現音樂播放器(Linux madplay)

&#xff08;一&#xff09;需求分析 1.掃描指定路徑下的音樂&#xff0c;并顯示出來 2.實現音樂的播放、暫停、上一首和下一首的功能 3.程序退出釋放內存資源 &#xff08;二&#xff09;思路 1.掃描出指定路徑下的音樂文件(便利指定文件夾&#xff0c;找出音頻文件放在數組…

編譯原理(簡單自動詞法分析器LEX)

編譯原理&#xff08;簡單自動詞法分析器LEX&#xff09;源程序下載地址&#xff1a; http://files.cnblogs.com/files/hujunzheng/%E6%B1%87%E7%BC%96%E5%8E%9F%E7%90%86%E7%AE%80%E5%8D%95LEX%EF%BC%88%E8%AF%8D%E6%B3%95%E8%87%AA%E5%8A%A8%E5%88%86%E6%9E%90%E5%99%A8%EF%…

虛擬機中安裝linux

&#xff08;一&#xff09;前言 就在昨天電腦的固態突然崩掉&#xff0c;無奈重新把系統裝在的以前的硬盤上&#xff0c;為了能夠繼續工作重新配置嵌入式linux系統開發環境&#xff0c;本教程主要記錄在虛擬機中安裝linux。 &#xff08;二&#xff09;環境準備 虛擬機&…

編譯原理簡單語法分析器(first,follow,分析表)源碼下載

編譯原理&#xff08;簡單語法分析器下載&#xff09; http://files.cnblogs.com/files/hujunzheng/%E5%8A%A0%E5%85%A5%E5%90%8C%E6%AD%A5%E7%AC%A6%E5%8F%B7%E5%90%8E%E7%9A%84%E8%AF%AD%E6%B3%95%E5%88%86%E6%9E%90%E5%99%A8.zip 轉載于:https://www.cnblogs.com/hujunzheng…

Ubuntu設置root登錄

1.、Ubuntu 管理員用戶 root 默認沒有密碼&#xff0c;在使用前最好添加密碼&#xff0c;使用指令&#xff1a; sudo passwd root 注意&#xff1a;命令行輸入密碼時不顯示&#xff0c;輸入時需注意密碼的準確性&#xff1b; 2、Ubuntu 想要用 root 帳戶登錄&#xff0c;可在普…

vim配置之spacevim

為了更好的利用vim&#xff0c;我們一般需要自己配置&#xff0c;今天介紹了一下經常用的spacevim &#xff08;一&#xff09;配置環境 Ubuntu16.04vim 7.4版本以上(必須&#xff01;&#xff01;) &#xff08;二&#xff09;安裝spacevim 1.檢查vim的版本&#xff1a; v…

Ubuntu更換gnome桌面環境后不能root登錄

安裝完Ubuntu后感覺界面有點丑陋&#xff0c;安裝了gnome桌面環境試一下 sudo apt-get install gnome-shell sudo apt-get install ubuntu-gnome-desktop如果選擇了lightdm后可以使用sudo dpkg-reconfigure gdm3 重新改回gdm3 sudo apt-get install unity-tweak-tool sudo ap…

Ubuntu下安裝tilix終端仿真器

安裝環境 Ubuntu 16.04 操作步驟 首先添加這個終端模擬器倉庫的公鑰。這里我都是以root超級用戶權限操作的&#xff0c;如果沒有的話&#xff0c;請在命令前面加sudo。 add-apt-repository ppa:webupd8team/terminixapt update安裝Tilix。 apt install tilix安裝完成測試結…

(擴展歐幾里德算法)zzuoj 10402: C.機器人

10402: C.機器人 Description Dr. Kong 設計的機器人卡爾非常活潑&#xff0c;既能原地蹦&#xff0c;又能跳遠。由于受軟硬件設計所限&#xff0c;機器人卡爾只能定點跳遠。若機器人站在&#xff08;X&#xff0c;Y&#xff09;位置&#xff0c;它可以原地蹦&#xff0c;但只可…

vim配置之snippets代碼塊

&#xff08;一&#xff09;目的 我們在編寫程序的過程中&#xff0c;經常會敲一些重復的代碼&#xff0c;我們可以利用snippets來達到輸入簡寫來敲出完整的代碼 &#xff08;二&#xff09;安裝步驟 安裝使用Vundle,沒有vbundle的先執行下面的命令 git clone https://gith…