題意
給定乙個字串,字串的長度一定是偶數,首先先把字串分成長度相等的前後兩部分,然後對這兩個字串做相同處理,處理規則是,先求字串的總數和,總數和的求法就是字串中的所有字母減a加起來 比如abcd總數和就是0+1+2+3=6,知道了總數和,字串中的每個字母都加上總數和,假設總數和是6,a就變成了g,z變成了f,然後得到了新的字串,兩個長度相同的字串均做此處理,最後一步 是再求新的後半串的總數和,然後新的前半串的加上新的後半串的總數和得到的新的字串就是我們要的字串。思路
這題思路嘛,感覺就是題目怎麼說你怎麼做,注意一下加多了z大於z了要變成a**
#include
#include
#include
using
namespace std;
intmain()
for(
int i=
(strlen
(str))/
2;i<
strlen
(str)
;i++
)int sum=0;
for(
int i=
0;i<
(strlen
(str))/
2;i++
) sum%=26
;for
(int i=
0;i<
(strlen
(str))/
2;i++)}
sum=0;
for(
int i=
(strlen
(str))/
2;i<
strlen
(str)
;i++
) sum%=26
;for
(int i=
(strlen
(str))/
2;i<
strlen
(str)
;i++)}
int a[
150000];
int ans=0;
memset
(a,0
,sizeof a)
;for
(int i=
(strlen
(str))/
2;i<
strlen
(str)
;i++
)for
(int i=
0;i<
(strlen
(str))/
2;i++)}
for(
int i=
0;i<
(strlen
(str))/
2;i++
) cout<; cout
}
題意
就是0-n個孩子,傳遞乙個球,球從第0個孩子開始傳,有k個指令全都是字串,思路然後指令有兩種型別一種是單純的數字,正數m就是順時針傳遞了m次,-m就是逆時針傳遞了m次,另外一種指令是undo m 就是撤銷 這條指令之前的m 次指令
輸入 有n k(指令的個數),問最後球落到哪個孩子了
這題如果沒有撤銷指令,就是所有移動數的和sum然後再(sum%n+n)%n,**但是有撤銷指令我們就想辦法把撤銷的移動數給刪除掉,由於是撤銷倒數m個指令,所以想到利用先進後出的棧,如果讀到undo 就把倒數m個的移動數pop 掉,後進的先出去
#include
#include
#include
#include
#include
#include
#include
using
namespace std;
stack<
int>sk;
intmain()
}else
}int sum=0;
while
(!sk.
empty()
) cout<<
(sum%n+n)
%n<}
題意
題意大致可以翻譯成給乙個二維字元陣列,全都是由『.』和『#』組成的,問有幾個閉合的#,上下左右,斜(上下左右)八個方向都算,只要有#他們都是連著的思路
dfs,每個點都遍歷,遍歷到乙個點就判斷他時候是#如果是# 總數就加一,然後把與這個#相連的所有#保護她自己都變成. 遍歷完總數就是答案**
#include
#include
using
namespace std;
int dx[8]
=;int dy[8]
=;int vis[
110]
[110];
char map[
110]
[110];
int n,m;
void
dfs(
int x,
int y)}}
intmain()
} cout
}
2020 01 18涼脾比賽
題目鏈結 題意是 給你一串字串 偶數個 1.首先把這個字串劃分為兩半,設為x,y。2.計算x字串中的每乙個字元對應的序號並相加和為sum,然後x中的每個字元變為加上這sum後對應的字元,y字串操作同理。3.第二步操作後的x字串中的每個字元要加上對應的y字串中的每個字元對應的序號。include in...
涼脾的比賽補題
題目鏈結 題意 給出一棵有n n 10 000 條邊的樹,存在且僅存在乙個critical結點,使得刪除該critical結點後,不連通的結點對最多。求出刪除該critical結點後不連通的結點對的數量n1。在刪除critical結點後加一條最優的邊,使得恢復連通的結點對最多,同時求出加上該最優邊後...
涼心的比賽
題意 給出一串只由 1 和 0 組成的字串 並只能進行 一 交換相鄰兩數的位置。二 相鄰的 11 可以換成 1 可以無限次的進行這兩個步驟 所以這題又可以分為三種情況 僅由 1 組成 經過無限次的變換,最後一定只剩下 1 僅由 0 組成 只有0一種情況,最終結果為0 既有 1 又有 0 最後經過有限...