zoukankan      html  css  js  c++  java
  • Codeforces 425A

    点击打开题目链接

    这题想了将近一天。。越发觉得自己太弱(不过早已经习惯这样的自己了 :P)不过因为是自己独立想出来的,还是很高兴。

    拿到题目,当看到数据量的时候,就感觉很明显的暴力。 n×n×n×k也是可以过的

    思路:枚举所选取的区间,这是O(n^2),然后因为是最多可以交换k次,进行替换的时候,就是从你所选取的区间外的数中选取最大值,和区间内的最小值进行交换,当你选取的区间的最小值不小于区间外的最大值的时候就不需要再交换了,此时已经是该区间能得到的最大值了。C题一般都是贪心啊。


    附上代码:

     1 /*************************************************************************
     2     > File Name: 425A.cpp
     3     > Author: Stomach_ache
     4     > Mail: sudaweitong@gmail.com
     5     > Created Time: 2014年04月29日 星期二 22时07分09秒
     6     > Propose: 
     7  ************************************************************************/
     8 
     9 #include <cmath>
    10 #include <string>
    11 #include <cstdio>
    12 #include <fstream>
    13 #include <cstring>
    14 #include <iostream>
    15 #include <algorithm>
    16 using namespace std;
    17 
    18 #define max(x,y) ((x) > (y) ? (x) : (y))
    19 int n, k, a[205], b[205], s[205];
    20 bool vis[205];
    21 
    22 int
    23 main(void) {
    24         scanf("%d %d", &n, &k);
    25         s[0] = 0;
    26         for (int i = 1; i <= n; i++) {
    27                 scanf("%d", b + i);
    28                 s[i] = s[i-1] + b[i];
    29         }
    30         int ret = -1005;
    31         for (int i = 1; i <= n; i++) {
    32                 for (int j = 1; j+i-1 <= n; j++) {
    33                         for (int ll = 1; ll <= n; ll++) {
    34                                 a[ll] = b[ll];
    35                         }
    36                         memset(vis, false, sizeof(vis));
    37                         int ans = s[j+i-1] - s[j-1];
    38                         /* ans = max(ans, s[j+i-1]-s[j-1]); */
    39                         for (int t = 1; t<=k && t<=i; t++) {
    40                                 int min = 1005, mini;
    41                                 for (int ll = j; ll <= j+i-1; ll++) {
    42                                         if (!vis[ll] && min > a[ll]) {
    43                                                 min = a[ll];
    44                                                 mini = ll;
    45                                         }
    46                                 }
    47                                 int tmp = -1005, tmpi;
    48                                 for (int ll = 1; ll < j; ll++) {
    49                                         if (!vis[ll] && tmp < a[ll]) {
    50                                                 tmp = a[ll];
    51                                                 tmpi = ll;
    52                                         }
    53                                 }
    54                                 for (int ll = j+i; ll <= n; ll++) {
    55                                         if (!vis[ll] && tmp < a[ll]) {
    56                                                 tmp = a[ll];
    57                                                 tmpi = ll;
    58                                         }
    59                                 }
    60                                 if (min >= tmp || tmp == -1005) {
    61                                         break;
    62                                 } else {
    63                                         swap(a[tmpi], a[mini]);
    64                                         ans += (tmp - min);
    65                                 }
    66                                 vis[tmpi] = true;
    67                                 vis[mini] = true;
    68                         }
    69                         ret = max(ret, ans);
    70                 }
    71         }
    72         printf("%d
    ", ret);
    73         
    74         return 0;
    75 }


  • 相关阅读:
    地址级联选择器(element-china-area-data插件)
    el-table在每一行拿到对应的index(scope.$index)
    el-table中的label换行问题(重点white-space)
    调用outlook来发送邮件
    利用apifox来测试API
    注解@ConfigurationProperties使用方法
    异步加载js,兼容IE
    Exceptionless安装的一些坑
    MVC 源码系列之控制器执行(二)
    MVC 源码系列之控制器执行(一)
  • 原文地址:https://www.cnblogs.com/Stomach-ache/p/3703134.html
Copyright © 2011-2022 走看看