zoukankan      html  css  js  c++  java
  • odeforces Round #145 (Div. 2)

    http://codeforces.com/contest/234

    做出来三题。第一题感觉不难,但是一直想不到好的做法。就先做了B,C。B很简单。C想到了也很简单。。

    记录下做法:

    A:感觉我的应该算作贪心。。。不知道是不是想复杂了。我是这么想的,要不是L多余R,要不是R多余L。于是可以先把左右位置确定下来,再判断是否满足左右相差大于1。

    假如不大于1的话。比如 3 4.那么右边除了2以外。其他的都可以代替4。。。

    View Code
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <algorithm>
     5 #include <cmath>
     6 #include <queue>
     7 #include <stack>
     8 using namespace std;
     9 
    10 #define MAXN 110
    11 int n;
    12 char s[110];
    13 
    14 
    15 int main()
    16 {
    17     //freopen("input.txt","r",stdin);
    18     //freopen("output.txt","w",stdout);
    19     while(cin>>n)
    20     {
    21         cin>>s;
    22         int left[MAXN];
    23         int right[MAXN];
    24         int le,re;
    25         queue<int>L;
    26         while(!L.empty())
    27             L.pop();
    28         queue<int>R;
    29         while(!R.empty())
    30             R.pop();
    31         for(int i=0;i<n;i++)
    32             if(s[i]=='L')
    33                 L.push(i+1);
    34             else
    35                 R.push(i+1);
    36         le=0;
    37         re=0;
    38         while(le<n/2)
    39         {
    40             if(L.empty())
    41                 break;
    42             left[le++]=L.front();
    43             L.pop();
    44         }
    45         while(!L.empty())
    46         {
    47             right[re++]=L.front();
    48             L.pop();
    49         }
    50         while(le<n/2)
    51         {
    52             if(R.empty())
    53                 break;
    54             left[le++]=R.front();
    55             R.pop();
    56         }
    57         while(!R.empty())
    58         {
    59             right[re++]=R.front();
    60             R.pop();
    61         }
    62         sort(left,left+(n/2));
    63         sort(right,right+(n/2));
    64         for(int i=0;i<(n/2);i++)
    65         {
    66             if(abs(left[i]-right[i])<=1)
    67             {
    68                 if(abs(left[i]-right[(i+1)%(n/2)])<=1)
    69                 {
    70                     int t=right[i];
    71                     right[i]=right[(i+2)%(n/2)];
    72                     right[(i+2)%(n/2)]=t;
    73                 }
    74                 else
    75                 {
    76                     int t=right[i];
    77                     right[i]=right[(i+1)%(n/2)];
    78                     right[(i+1)%(n/2)]=t;
    79                 }
    80             }
    81         }
    82         for(int i=0;i<(n/2);i++)
    83             cout<<left[i]<<" "<<right[i]<<endl;
    84     
    85     }
    86     return 0;
    87 }

    B:排序

    View Code
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <algorithm>
     5 #include <cmath>
     6 #include <queue>
     7 #include <stack>
     8 using namespace std;
     9 
    10 struct node
    11 {
    12     int id;
    13     int light;
    14 };
    15 node lie[1010];
    16 int  n,k;
    17 bool cmp(const node & a,const node &b)
    18 {
    19     return a.light>b.light;
    20 }
    21 
    22 int main()
    23 {
    24     freopen("input.txt","r",stdin);
    25     freopen("output.txt","w",stdout);
    26     while(~scanf("%d%d",&n,&k))
    27     {
    28         for(int i=1;i<=n;i++)
    29         {    
    30             scanf("%d",&lie[i].light);
    31             lie[i].id=i;
    32         }
    33         sort(lie+1,lie+n+1,cmp);
    34         printf("%d\n",lie[k].light);
    35         printf("%d",lie[1].id);
    36         for(int i=2;i<=k;i++)
    37             printf(" %d",lie[i].id);
    38         printf("\n");
    39     }
    40     return 0;
    41 }

    C:

    int sum[MAXN];表示从2->i的这些数中>=0的有多少
    int sum2[MAXN];表示从n-1->i的这些数中<=0的有多少。

    View Code
     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <algorithm>
     5 #include <cmath>
     6 #include <queue>
     7 #include <stack>
     8 using namespace std;
     9 
    10 #define MAXN 100010
    11 int  n,ans;
    12 int num[MAXN];
    13 int sum[MAXN];
    14 int sum2[MAXN];
    15 int main()
    16 {
    17     //freopen("input.txt","r",stdin);
    18 //    freopen("output.txt","w",stdout);
    19     while(scanf("%d",&n) != EOF)
    20     {
    21         ans=MAXN;
    22         int cnt=0;
    23         memset(sum,0,sizeof(sum));
    24         memset(sum2,0,sizeof(sum2));
    25         scanf("%d",&num[1]);
    26         for(int i=2;i<n;i++)
    27         {
    28             scanf("%d",&num[i]);
    29             sum[i]=sum[i-1];
    30             if(num[i]>=0)
    31                 sum[i]++;
    32         }
    33         scanf("%d",&num[n]);
    34         for(int i=n-1;i>=2;i--)
    35         {
    36             sum2[i]=sum2[i+1];
    37             if(num[i]<=0)
    38                 sum2[i]++;
    39         }
    40         ans=MAXN*100;
    41         for(int i=1;i<=n-1;i++)
    42         {
    43             if(sum[i]+sum2[i+1]<ans)
    44                 ans=sum[i]+sum2[i+1];
    45         }
    46         if(num[1]>=0)
    47             ans++;
    48         if(num[n]<=0)
    49             ans++;
    50         printf("%d\n",ans);
    51     }
    52     return 0;
    53 }
  • 相关阅读:
    14.4.9 Configuring Spin Lock Polling 配置Spin lock 轮询:
    14.4.8 Configuring the InnoDB Master Thread IO Rate 配置InnoDB Master Thread I/O Rate
    14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量
    14.4.7 Configuring the Number of Background InnoDB IO Threads 配置 后台InnoDB IO Threads的数量
    14.4.6 Configuring Thread Concurrency for InnoDB 配置Thread 并发
    14.4.6 Configuring Thread Concurrency for InnoDB 配置Thread 并发
    14.4.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering
    14.4.5 Configuring InnoDB Change Buffering 配置InnoDB Change Buffering
    14.4.4 Configuring the Memory Allocator for InnoDB InnoDB 配置内存分配器
    14.4.4 Configuring the Memory Allocator for InnoDB InnoDB 配置内存分配器
  • 原文地址:https://www.cnblogs.com/Missa/p/2726532.html
Copyright © 2011-2022 走看看