Key 1: Prints 'A' on screen
Key 2: (Ctrl-A): Select screen
Key 3: (Ctrl-C): Copy selection to buffer
Key 4: (Ctrl-V): Print buffer on screen appending it
after what has already been printed.
Key 2: (Ctrl-A): Select screen
Key 3: (Ctrl-C): Copy selection to buffer
Key 4: (Ctrl-V): Print buffer on screen appending it
after what has already been printed.
Solution
a) For N < 7, the output is N itself. b) Ctrl V can be used multiple times to print current buffer (See last two examples above). The idea is to compute the optimal string length for N keystrokes by using a simple insight. The sequence of N keystrokes which produces an optimal string length will end with a suffix of Ctrl-A, a Ctrl-C, followed by only Ctrl-V's (For N > 6). //from geeks.
Code
#include <stdio.h>
#include <iostream>
using namespace std;
int T;
int n;
const int N = 85;
typedef long long ll;
ll dp[N];
int main() {
for (int i = 1;i <= 6;i ++) {
dp[i] = i;
}
for (int i = 7;i <= 75;i ++) {
for (int j = 1;j <= i - 3;j ++) {
dp[i] = max(dp[i],dp[j] * (1 + i - j - 2));
}
}
scanf("%d",&T);
while (T --) {
scanf("%d",&n);
cout << dp[n] << endl;
}
return 0;
}
没有评论:
发表评论