第三题: int main() {     int T;     cin >> T;     while (T--) {         int n, k;         cin >> n >> k;         vector<int> a(n);         for (int i = 0; i < n; i++)             cin >> a[i];         vector<int> dp(n, 0);         dp[n - 1] = -1;         for (int i = n - 2; i >= 0; i--) {             for (int j = min(n - 1, i + k); j > i; j--) {                 if (a[j] <= a[i] && dp[j] == -1) {                     dp[i] = -1;                     break;                 }             }         }         if (dp[0] == -1) {             cout << "YES" << endl;             continue;         }         for (int i = 0; i < n; i++)             cout << dp[i] << ' ';         cout << endl;         bool res = false;         dp[0] = 1;         for (int i = 1; i < n; i++) {             for (int j = max(0, i - k); j < i; j++) {                 if (dp[j] == 1) {                     if (dp[i] == -1) {                         res = true;                         break;                     }                     else if (a[j] >= a[i])                         dp[i] = 1;                 }             }             if (res == true)                 break;         }         if (res)             cout << "YES" << endl;         else             cout << "NO" << endl;     }     system("pause");     return 0; }
点赞 1

相关推荐

04-29 18:07
常州大学 Java
寂静羽翼:兄弟我已经亲身经历了,双非没实习很多大厂还是会给笔试的,可是有的公司笔试做的好也不给面一直卡着,ssob基本看我没实习都拒绝我了,但是每天投满偶尔也能有一两场初创公司的面试,但是薪资基本在五六千
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务