2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Post interrogationem perlectis, scis quod in filo longitudinis n, invenias longitudinem substringi palindromi longissimi. Palindromus substringens ut chorda symmetrica intelligi potest. Propter symmetriam, idea fundamentalis est "modus expansionis centrum", hoc est, chorda in ordine percurritur, et tunc ad utramque partem ampliatur characteris memoratur in retlen variabilis. Percursis tandem tandem maximam longitudinem accipimus. Ad intelligentiam faciliorem, picturam trahere;
Praeter exemplum, cum analysis, attende debes differentiam inter impares et pares numeros, ergo gradus progressionis est exsecutio.
Primum, secundum "medium expansionis modum" ideae analysis, chorda e statione centrali percurritur et dilatatur in i numeri et pares, respective valorem maximum invenire, et tandem comparare ad extremum maximum retlen et reddere.
class Solution
{
public:
int getLongestPalindrome(string A)
{
size_t len = A.size();
int left = 0;
int right = 0;
int retlen = 0;
//偶数
for(int i = 0;i < len; i++)
{
left = i;
right = i + 1;
while(left >= 0 && right < len && A[left] == A[right])
{
left--;
right++;
}
retlen = max(retlen ,right - left - 1);
}
//奇数
for(int j = 0;j < len;j++)
{
left = j;
right = j;
while(left >= 0 && right < len && A[left] == A[right])
{
left--;
right++;
}
retlen = max(retlen ,right - left - 1);
}
return retlen ;
}
};
Post interrogationem perlectis, scis quod ad emptionem et venditionem machinam globi nervum, semel tantum emere ac vendere potes multum perdis, id est, non est lucrum, tunc output 0 Id est. Deinde, idea fundamentalis methodum vim brutam enumerare, lucrum cuiusque coetus differentiam invenire, et maximum valorem reddere solvere 1ms. Ergo necesse est ad optimize modum in vi violenta fundatur, ita etiam violenta vis scripta est. vicissim, primum considera venditionis Tunc solum debes invenire valorem minimum ante punctum venditionis, et differentiam maximam differentiam consecutus est, quod solum debes percurrere semel. Proximus gradus est progressio exsecutionis.
Primum, secundum vim violentam methodi analysis, omnes casus enumerantur ad inveniendam maximam differentiam output. Has ut ipsum tantas.
#include <iostream>
using namespace std;
const int N = 1e5 +10;
int arr[N];
int main()
{
int n;
cin >> n;
for(int i = 0;i < n;i++)
cin >> arr[i];
int maxval = 0;
for(int i = 0;i < n; i++)
{
for(int j = i;j < n;j++)
{
maxval = max(maxval , arr[j]- arr[i]);
}
}
cout << maxval << endl;
return 0;
}
Fundata supra vi methodo violenta, optimization explicatur.
Deinde ad propositum deducendi, scribe input secundum exigentiam, deinde minutum definias ad initialize arr[0] ut minimum valorem assumtum ad comparationem et renovationem traversalem, tum maxSub definias ad maximam differentiam a minval percurso ad statum i. quae nota operae pretium est, cum peragrantes, ordinem minvalium et maxSub attendere. Primum inveniat valorem minimi momenti et deinde maxSub inveniat.
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n = 0;
cin >> n;
vector<int> arr(n);
int m = 0;
while(n--)
{
cin >> arr[m];
m++;
}
int minval = arr[0];
int submax = 0;
for(int i = 0;i<arr.size();i++)
{
minval = min(arr[i],minval);
submax = max(submax, arr[i] - minval);
}
cout << submax << endl;
return 0;
}
Post interrogationem perlectis, scies quot viae sint ad summum pergens a puncto A ad punctum B secundum certas regulas. Cum resolvendo quaestionem, debes scire secundum certas regulas, posse ire ius vel deorsum, quod facit ideam programmandi dynamici dp equi moveri non possunt, id est, miles in latrunculo Quae a diametro "sol" in coordinatis designata, incluso initium equi, dicuntur puncta potestate. Equus inter eos est punctus fixus (x, y) ab initio datus, et quaestio etiam necessitudinem praebet inter saltum equi et initium equi. Praeterea notandum est, secundum exemplum et latrunculorum magnitudinem latrunculorum (n+1).(m+1)
Unde, secundum praedictam analysim, concludere possumus;
(1) Potes programmando dynamicas ideas dp notionibus ad quaestiones solvendas uti;
(2) Equorum moderatio, praeter diagonalem "solem", suum quoque principium continet;
Magnitudo latrunculorum est (n+ 1).(m+1).
Itaque, puncta attentionis resolvenda, ad statum dp repraesentativum et statum transitum aequationis programmationis dynamicae revertimur;
Secundum regulas ambulationis thematis, dp[i][j] statum repraesentare definitur: plures sunt viae ad hoc positionem;
Consequenter trahunt statum transitum: dp[i][j] = d[i][j-1] + d[i-1][j];
Et nota, quod si principium puncti B coincidit cum positione principii equi vel in puncto, et cacumen et residuum puncti B sunt omnia obstructa, scilicet in puncto termino, tunc in superiori casu. , hoc tempore dp[i] [j] = 0;
Primum scribe input secundum analysin ideae, defini et aperi dp ordinata (de duobus laqueis postea dicetur), et secundum magnitudinem LATRUNCULARUM, ut coordinatas uniformiter describere possint, extra. ordo et columna hic aperietur, deinde x et y opus est ut deformetur Just pone coordinatas +=1, tunc explora initialization problema de dp, et picturam trahe ut clariorem reddas;
Deinde ipsa duo dimensiva ordinata ab [1, n+1] et [1, m+1], processus extremarum condicionum constanter judicans, ac demum deputatio dp[n+1][m+1]. In hac parte non est dubium cum idea.
(1), coordinatas ipsarum x et y mapping;
(2) Initialize dp[0][1] = 1 vel dp[1][0] = 1 secundum ordinatam definitionem (aperire unum tabulatum);
(3) Duos digiti ordines percurre, attendentes limitem ditionis traversalis a [1, n+1] et [1, m+1];
a.
b.
(4) denique output dp[n+1][m+1].
Duae praeterea foveae supra scriptae sunt, postquam conplevi scripturam, submissionem defecisse et inveni datam extra teli esse, ita melius est ut diu ad aperiendam aciem usus sit Orificium majus nimis. Antea omnes casus utentes dp[21][21] praeteriri non poterant.
#include <iostream>
using namespace std;
long long dp[22][22];
int main()
{
int n,m,x,y;
cin >> n >> m >> x >> y;
//映射坐标
x += 1;
y += 1;
//初始化
dp[0][1] = 1;
//遍历
for(int i = 1;i <= n+1; i++)
{
for(int j = 1;j <= m+1; j++)
{
//极端情况的处理: 1.马控制点 2.自身重合
if((i != x && j != y && abs(i - x) + abs(j - y) == 3) || (i == x && j == y))
{
dp[i][j] = 0;
}
else
{
dp[i][j] = dp[i][j-1] + dp[i-1][j];
}
}
}
cout << dp[n+1][m+1] << endl;
return 0;
}
longissimum palindrome substring
Optimum tempus emere et vendere ligna (1)
[NOIP2002 Popularization Group] Transiens Pawn