Warning: session_start(): open(/tmp/sess_e59389b3367b10b6b0749e2da7b1e2ef, O_RDWR) failed: No space left on device (28) in /data/wiki/inc/init.php on line 239
Warning: session_start(): Failed to read session data: files (path: ) in /data/wiki/inc/init.php on line 239
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/auth.php on line 430
Writing /data/wiki/data/cache/8/878e000dca5c08fe55e62fff31fad8b7.captchaip failed
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/Action/Export.php on line 103
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/Action/Export.php on line 103
Warning: Cannot modify header information - headers already sent by (output started at /data/wiki/inc/init.php:239) in /data/wiki/inc/Action/Export.php on line 103
===== B =====
* 题意:给你一串数$s$$1$,$s$$2$,$s$$3$,$\ldots$,$s$$n$. 如果满足下标$i$$j$,$i$$j+1$满足$i$$j$<$i$$j+1$并且有$s$$i$$j$ <$s$$i$$j+1$ .则称这样的安排是美的,题目要你找出一串序列中最长的,具有美感的数列长度。
* 代码:
# include
using namespace std;
void solve() {
int n;
cin >> n;
vector a(n + 1), dp(n + 1);
for (int i = 1; i <= n; i++) {
cin >> a[i];
}
int answer = 0;
for (int i = 1; i <= n; i++) {
int mx = 0;
for (int j = 1; j * j <= i; j++) {
if (i % j == 0) {
if (a[j] < a[i]) mx = max(mx, dp[j]);
if (a[i / j] < a[i]) mx = max(mx, dp[i / j]);
}
}
dp[i] = mx + 1;
answer = max(answer, dp[i]);
}
cout << answer << endl;
}
int main() {
int tt = 1;
cin >> tt;
while (tt--)
solve();
}