zoukankan      html  css  js  c++  java
  • Codeforces Round #633 div2 A~C

    A. Filling Diamonds

    题意:给你n个菱形方块,问能构成图示形状的有多少种

    题解:自己画几个不难发现答案是n

    代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cmath>
     5 #include <algorithm>
     6 #include <stack>
     7 #include <queue>
     8 #include <vector>
     9 #include <map>
    10 #include <set>
    11 #include <unordered_set>
    12 #include <unordered_map>
    13 #define ll long long
    14 #define fi first
    15 #define se second
    16 #define pb push_back
    17 #define me memset
    18 const int N = 1e6 + 10;
    19 const int mod = 1e9 + 7;
    20 using namespace std;
    21 typedef pair<int,int> PII;
    22 typedef pair<long,long> PLL;
    23  
    24 int t;
    25 ll n;
    26  
    27 int main() {
    28     ios::sync_with_stdio(false);
    29     cin>>t;
    30      while(t--){
    31          cin>>n;
    32          printf("%lld\n",n);
    33  
    34      }
    35  
    36  
    37  
    38     return 0;
    39 }
    View Code

    B. Sorted Adjacent Differences

    题意:给你一个长度为n的数组a,将a重新排序,使得相邻两项之间的差非递减.
    题解:每两项之间的差要非递减,那么我们从后往前看,最后两项一定可以是a的最大值和最小值,然后是a的第二大和第二小.,一直往前枚举即可.

    代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cmath>
     5 #include <algorithm>
     6 #include <stack>
     7 #include <queue>
     8 #include <vector>
     9 #include <map>
    10 #include <set>
    11 #include <unordered_set>
    12 #include <unordered_map>
    13 #define ll long long
    14 #define fi first
    15 #define se second
    16 #define pb push_back
    17 #define me memset
    18 const int N = 1e6 + 10;
    19 const int mod = 1e9 + 7;
    20 using namespace std;
    21 typedef pair<int,int> PII;
    22 typedef pair<long,long> PLL;
    23  
    24 int t;
    25 int n;
    26 int cnt;
    27 ll a[N],b[N];
    28 int main() {
    29     ios::sync_with_stdio(false);
    30     cin>>t;
    31      while(t--){
    32          cin>>n;
    33          cnt=0;
    34           for(int i=0;i<n;++i) cin>>a[i];
    35  
    36           sort(a,a+n);
    37  
    38           for(int i=0;i<(n+1)/2;++i){
    39               if(i==(n+1)/2-1 && n%2!=0){
    40                   b[cnt++]=a[i];
    41               }
    42               else {
    43                   b[cnt++] = a[i];
    44                   b[cnt++] = a[n - i - 1];
    45               }
    46           }
    47           for(int i=cnt-1;i>=0;--i){
    48               printf("%lld ",b[i]);
    49           }
    50           puts("");
    51  
    52      }
    53  
    54  
    55  
    56     return 0;
    57 }
    View Code

    C. Powered Addition

    题意:给你一个长度为n的数组a,从第1秒开始,你可以在第i秒的时候对a的任意项加上2^(i-1),问最少在多少秒的时候使得a的所有元素非递减.

    题解:最优解一定要满足差值最大的那个逆序对,所以我们在输入的时候维护一个逆序对的最大差值ma,然后只要让某一秒时的sum>ma就行了.

    代码:

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cmath>
     5 #include <algorithm>
     6 #include <stack>
     7 #include <queue>
     8 #include <vector>
     9 #include <map>
    10 #include <set>
    11 #include <unordered_set>
    12 #include <unordered_map>
    13 #define ll long long
    14 #define fi first
    15 #define se second
    16 #define pb push_back
    17 #define me memset
    18 const int N = 1e6 + 10;
    19 const int mod = 1e9 + 7;
    20 using namespace std;
    21 typedef pair<int,int> PII;
    22 typedef pair<long,long> PLL;
    23  
    24 int t;
    25 int n;
    26 ll a[N];
    27 ll res=-1e9-10,ma=-1e9-10;
    28 int main() {
    29     ios::sync_with_stdio(false);
    30     cin>>t;
    31      while(t--){
    32          cin>>n;
    33          res=-1e9-10,ma=-1e9-10;
    34           for(int i=0;i<n;++i){
    35               cin>>a[i];
    36               if(a[i]<res) ma=max(ma,res-a[i]);
    37               res=max(res,a[i]);
    38           }
    39           ll s=1,sum=0,cnt=0;
    40           while(sum<ma){
    41               sum+=s;
    42               s*=2;
    43               cnt++;
    44           }
    45           printf("%lld\n",cnt);
    46      }
    47  
    48     return 0;
    49 }
    View Code
  • 相关阅读:
    NYOJ 205
    NYOJ 187
    NYOJ 105
    NUOJ 88
    NYOJ 70
    LL(1)算法
    MATLAB的一些基础知识
    Ubuntu raid5+lvm实验
    空间滤波
    认识weblogic的各个机构
  • 原文地址:https://www.cnblogs.com/lr599909928/p/12690396.html
Copyright © 2011-2022 走看看