• Codeforces Round #546 (Div. 2)


    Codeforces Round #546 (Div. 2)

    http://codeforces.com/contest/1136

    A

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define lson l,mid,rt<<1
     4 #define rson mid+1,r,rt<<1|1
     5 #define sqr(x) ((x)*(x))
     6 #define pb push_back
     7 #define eb emplace_back
     8 #define maxn 13000005
     9 #define eps 1e-8
    10 #define pi acos(-1.0)
    11 #define rep(k,i,j) for(int k=i;k<j;k++)
    12 typedef long long ll;
    13 typedef pair<int,int> pii;
    14 typedef pair<long long,int>pli;
    15 typedef pair<int,char> pic;
    16 typedef pair<pair<int,string>,pii> ppp;
    17 typedef unsigned long long ull;
    18 const long long MOD=1e9+7;
    19 /*#ifndef ONLINE_JUDGE
    20         freopen("1.txt","r",stdin);
    21 #endif */
    22 
    23 vector<pii>ve;
    24 
    25 int main(){
    26     #ifndef ONLINE_JUDGE
    27      //   freopen("1.txt","r",stdin);
    28     #endif
    29     std::ios::sync_with_stdio(false);
    30     int n;
    31     cin>>n;
    32     int u,v;
    33     for(int i=0;i<n;i++){
    34         cin>>u>>v;
    35         ve.pb({u,v});
    36     }
    37     sort(ve.begin(),ve.end());
    38     int m;
    39     cin>>m;
    40     for(int i=0;i<ve.size();i++){
    41         if(ve[i].first<=m&&ve[i].second>=m){
    42             cout<<n-i<<endl;
    43         }
    44     }
    45 }
    View Code

    B

    找规律

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define lson l,mid,rt<<1
     4 #define rson mid+1,r,rt<<1|1
     5 #define sqr(x) ((x)*(x))
     6 #define pb push_back
     7 #define eb emplace_back
     8 #define maxn 13000005
     9 #define eps 1e-8
    10 #define pi acos(-1.0)
    11 #define rep(k,i,j) for(int k=i;k<j;k++)
    12 typedef long long ll;
    13 typedef pair<int,int> pii;
    14 typedef pair<long long,int>pli;
    15 typedef pair<int,char> pic;
    16 typedef pair<pair<int,string>,pii> ppp;
    17 typedef unsigned long long ull;
    18 const long long MOD=1e9+7;
    19 /*#ifndef ONLINE_JUDGE
    20         freopen("1.txt","r",stdin);
    21 #endif */
    22 
    23 vector<pii>ve;
    24 
    25 int main(){
    26     #ifndef ONLINE_JUDGE
    27      //   freopen("1.txt","r",stdin);
    28     #endif
    29     std::ios::sync_with_stdio(false);
    30     int n,k;
    31     cin>>n>>k;
    32     cout<<n*3+min(k-1,n-k)<<endl;
    33 }
    View Code

    C

    通过模拟可以发现,不管子矩阵怎么变化,矩阵的对角线上的值的种类和个数不会变,只会改变他们的顺序

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define lson l,mid,rt<<1
     4 #define rson mid+1,r,rt<<1|1
     5 #define sqr(x) ((x)*(x))
     6 #define pb push_back
     7 #define eb emplace_back
     8 #define maxn 13000005
     9 #define eps 1e-8
    10 #define pi acos(-1.0)
    11 #define rep(k,i,j) for(int k=i;k<j;k++)
    12 typedef long long ll;
    13 typedef pair<int,int> pii;
    14 typedef pair<long long,int>pli;
    15 typedef pair<int,char> pic;
    16 typedef pair<pair<int,string>,pii> ppp;
    17 typedef unsigned long long ull;
    18 const long long MOD=1e9+7;
    19 /*#ifndef ONLINE_JUDGE
    20         freopen("1.txt","r",stdin);
    21 #endif */
    22 
    23 int n,m;
    24 int ma1[505][505];
    25 int ma2[505][505];
    26 
    27 int main(){
    28     #ifndef ONLINE_JUDGE
    29      //   freopen("1.txt","r",stdin);
    30     #endif
    31     std::ios::sync_with_stdio(false);
    32     cin>>n>>m;
    33     for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>ma1[i][j];
    34     for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>ma2[i][j];
    35     int x1=1,x2=1,y1=1,y2=1;
    36     int aa,bb,cc,dd;
    37     vector<int>v1[1005];
    38     vector<int>v2[1005];
    39     int co=0;
    40     while((x1!=n+1||x2!=n||y1!=m||y2!=m+1)){
    41         aa=x1,bb=y1,cc=x2,dd=y2;
    42         while(aa<=cc&&bb>=dd){
    43             v1[co].pb(ma1[aa][bb]);
    44             v2[co].pb(ma2[aa][bb]);
    45             aa++,bb--;
    46         }
    47         co++;
    48         if(y1==m) x1++;
    49         else y1++;
    50         if(x2==n) y2++;
    51         else x2++;
    52     }
    53     for(int i=0;i<co;i++){
    54         sort(v1[i].begin(),v1[i].end());
    55         sort(v2[i].begin(),v2[i].end());
    56         for(int j=0;j<v1[i].size();j++){
    57             if(v1[i][j]!=v2[i][j]){
    58                 cout<<"NO"<<endl;
    59                 return 0;
    60             }
    61         }
    62     }
    63     cout<<"YES"<<endl;
    64 }
    View Code

    D

    贪心

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define lson l,mid,rt<<1
     4 #define rson mid+1,r,rt<<1|1
     5 #define sqr(x) ((x)*(x))
     6 #define pb push_back
     7 #define eb emplace_back
     8 #define maxn 13000005
     9 #define eps 1e-8
    10 #define pi acos(-1.0)
    11 #define rep(k,i,j) for(int k=i;k<j;k++)
    12 typedef long long ll;
    13 typedef pair<int,int> pii;
    14 typedef pair<long long,int>pli;
    15 typedef pair<int,char> pic;
    16 typedef pair<pair<int,string>,pii> ppp;
    17 typedef unsigned long long ull;
    18 const long long MOD=1e9+7;
    19 /*#ifndef ONLINE_JUDGE
    20         freopen("1.txt","r",stdin);
    21 #endif */
    22 
    23 int n,m;
    24 int a[300005];
    25 set<pii>se;
    26 vector<int>ve;
    27 
    28 int main(){
    29     #ifndef ONLINE_JUDGE
    30      //   freopen("1.txt","r",stdin);
    31     #endif
    32     std::ios::sync_with_stdio(false);
    33     cin>>n>>m;
    34     for(int i=1;i<=n;i++) cin>>a[i];
    35     int u,v;
    36     for(int i=0;i<m;i++){
    37         cin>>u>>v;
    38         se.insert({u,v});
    39     }
    40     ve.pb(a[n]);
    41     int flag;
    42     int ans=0;
    43     for(int i=n-1;i;i--){
    44         flag=1;
    45         for(int j=0;j<ve.size();j++){
    46             if(!se.count({a[i],ve[j]})){
    47                 flag=0;
    48                 break;
    49             }
    50         }
    51         if(flag)
    52             ans++;
    53         else ve.pb(a[i]);
    54     }
    55     cout<<ans<<endl;
    56 }
    View Code

    E

    线段树好题

    参考博客:https://www.cnblogs.com/pkgunboat/p/10527569.html

      1 #include<bits/stdc++.h>
      2 using namespace std;
      3 #define lson l,mid,rt<<1
      4 #define rson mid+1,r,rt<<1|1
      5 #define sqr(x) ((x)*(x))
      6 #define pb push_back
      7 #define eb emplace_back
      8 #define maxn 100005
      9 #define eps 1e-8
     10 #define pi acos(-1.0)
     11 #define rep(k,i,j) for(int k=i;k<j;k++)
     12 typedef long long ll;
     13 typedef pair<int,int> pii;
     14 typedef pair<long long,int>pli;
     15 typedef pair<int,char> pic;
     16 typedef pair<pair<int,string>,pii> ppp;
     17 typedef unsigned long long ull;
     18 const long long MOD=1e9+7;
     19 /*#ifndef ONLINE_JUDGE
     20         freopen("1.txt","r",stdin);
     21 #endif */
     22 
     23 int n,m;
     24 ll a[maxn];
     25 ll b[maxn];
     26 ll c[maxn];
     27 ll tree[maxn<<3],lazy[maxn<<3];
     28 
     29 
     30 void push_up(int rt){
     31     tree[rt]=tree[rt<<1]+tree[rt<<1|1];
     32 }
     33 
     34 void push_down(int l,int r,int rt){
     35     if(lazy[rt]!=-0x3f3f3f3f3f3f3f3f){
     36         ll mid=l+r>>1;
     37         lazy[rt<<1]=lazy[rt];
     38         lazy[rt<<1|1]=lazy[rt];
     39         tree[rt<<1]=(mid-l+1)*lazy[rt]+(c[mid]-c[l-1]);
     40         tree[rt<<1|1]=(r-mid)*lazy[rt]+(c[r]-c[mid]);
     41         lazy[rt]=-0x3f3f3f3f3f3f3f3f;
     42     }
     43 }
     44 
     45 void build(int l,int r,int rt){
     46     lazy[rt]=-0x3f3f3f3f3f3f3f3f;
     47     if(l==r){
     48         tree[rt]=a[l];
     49         return;
     50     }
     51     int mid=l+r>>1;
     52     build(lson);
     53     build(rson);
     54     push_up(rt);
     55 }
     56 
     57 ll query(int L,int R,int l,int r,int rt){
     58     if(L<=l&&R>=r){
     59         return tree[rt];
     60     }
     61     int mid=l+r>>1;
     62     push_down(l,r,rt);
     63     ll ans=0;
     64     if(L<=mid) ans+=query(L,R,lson);
     65     if(R>mid) ans+=query(L,R,rson);
     66     return ans;
     67 }
     68 
     69 void update(int L,int R,ll v,int l,int r,int rt){
     70     if(L<=l&&R>=r){
     71         tree[rt]=(r-l+1)*v+(c[r]-c[l-1]);
     72         lazy[rt]=v;
     73         return;
     74     }
     75     int mid=l+r>>1;
     76     push_down(l,r,rt);
     77     if(L<=mid) update(L,R,v,lson);
     78     if(R>mid) update(L,R,v,rson);
     79     push_up(rt);
     80 }
     81 
     82 int main(){
     83     #ifndef ONLINE_JUDGE
     84      //   freopen("1.txt","r",stdin);
     85     #endif
     86     std::ios::sync_with_stdio(false);
     87     cin>>n;
     88     for(int i=1;i<=n;i++) cin>>a[i];
     89     for(int i=2;i<=n;i++){
     90         cin>>b[i];
     91         b[i]+=b[i-1];
     92     }
     93     for(int i=2;i<=n;i++){
     94         c[i]=c[i-1]+b[i];
     95     }
     96     build(1,n,1);
     97     cin>>m;
     98     char pos;
     99     int x,y;
    100     for(int i=1;i<=m;i++){
    101         cin>>pos>>x>>y;
    102         if(pos=='+'){
    103             int L=x,R=n,mid;
    104             ll init=query(x,x,1,n,1),tmp;
    105             while(L<=R){
    106                 mid=L+R>>1;
    107                 tmp=query(mid,mid,1,n,1);
    108                 if(init+y+b[mid]-b[x]>tmp){
    109                     L=mid+1;
    110                 }
    111                 else{
    112                     R=mid-1;
    113                 }
    114             }
    115             update(x,R,init+y-b[x],1,n,1);
    116         }
    117         else{
    118             cout<<query(x,y,1,n,1)<<endl;
    119         }
    120     }
    121 }
    View Code
  • 相关阅读:
    禁止input输入框输入指定内容
    js鼠标按键事件和键盘按键事件用法实例汇总
    JSONP实现跨域
    DedeCMS学习
    原生JS实现瀑布流
    常见浏览器兼容问题、盒模型2种模式以及css hack知识讲解
    Ajax学习整理
    Python学习【第三篇】Python变量
    Python学习【第二篇】Python入门
    Python学习【第一篇】Python简介
  • 原文地址:https://www.cnblogs.com/Fighting-sh/p/10530376.html
Copyright © 2020-2023  润新知