2019 ICPC NERC

Posted ordinarv

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2019 ICPC NERC相关的知识,希望对你有一定的参考价值。

2019 ICPC NERC

 https://codeforces.com/contest/1250

 

A 结构体模拟

 

结构体维护当前pos,maxpos 和 minpos。pos数组维护位置i的id是多少。

技术图片
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 typedef long long ll;
 4 typedef pair<int,int> piir;
 5 const int maxn = 1e5+5;
 6 
 7 struct node{
 8     int p,mx,mi;
 9 }post[maxn];
10 
11 int pos[maxn];//pos[i] 位置i的id是多少
12 int n,m,a[4*maxn];
13 void init(){
14     for(int i=1;i<=n;i++){
15         post[i].p=i;
16         post[i].mi=post[i].mx=i;
17         pos[i]=i;
18     }
19 }
20 void debug(){
21 //    printf("pos ");
22 //    for(int i=1;i<=n;i++)
23 //        printf("%d ",pos[i]);
24 //    printf("
");
25     for(int i=1;i<=n;i++){
26         printf("%d ",post[i].p);
27     }
28     printf("
");
29 }
30 
31 void work(){
32 
33     for(int i=0;i<m;i++){
34 
35         int cur=a[i];
36         if(post[cur].p!=1){
37             int pre = pos[post[cur].p-1];
38             swap(pos[post[cur].p-1],pos[post[cur].p]);
39             post[cur].p--;
40             post[cur].mi = min(post[cur].p,post[cur].mi);
41             post[pre].p++;
42             post[pre].mx = max(post[pre].p,post[pre].mx);
43 
44         }
45     }
46     for(int i=1;i<=n;i++){
47         printf("%d %d
",post[i].mi,post[i].mx);
48     }
49     //debug();
50 }
51 int main(){
52 //#ifndef ONLINE_JUDEG
53 //    freopen("in.txt","r",stdin);
54 //#endif
55     scanf("%d%d",&n,&m);
56     for(int i=0;i<m;i++)
57         scanf("%d",&a[i]);
58     init();
59     work();
60     return 0;
61 }
View Code

枚举即可。学长三分又wa了

 

C 线段树

2-sat

F

签到

H

思考即可

J

二分

模拟,我写的太复杂了,if...else写懵了

技术图片
 1 #include<bits/stdc++.h>
 2 
 3 using namespace std;
 4 typedef long long ll;
 5 typedef pair<int,int> piir;
 6 const int maxn = 15;
 7 const int INF = 2e5+5;
 8 
 9 int na,nb,nc,a,b,c;
10 
11 int main(){
12     int _;
13     scanf("%d",&_);
14     while(_--){
15         int ans=0,tmp=0;
16         na=nb=nc=0;
17         scanf("%d%d%d",&a,&b,&c);
18         if(c>a) swap(a,c);
19         na=c;a-=c;
20         if(a>=c) nb=c,a-=c;
21         else {
22             nb=a,a=0;
23 
24             if(b>=(c-nb)){
25                 b-=(c-nb),nb=c;
26             }
27             else {
28                 nb+=b,b=0;
29             }
30         }
31         ans = na;
32         if(a==0&&b) {
33             tmp=b%3?b/3+1:b/3;
34             ans=na+tmp;
35         }
36         else{
37             ans=na,tmp=0;
38             while(a>0 && b>0){
39                 a--;
40                na++;
41                 if(a==0){
42                     if(b>=2){
43                         b-=2;
44                         tmp=b%3?b/3+1:b/3;
45                         ans=na+tmp;
46                     }
47                     else {
48                         ans =na;
49                     }
50                     break;
51 
52                 }
53 
54                 a--;
55                 nb++;
56                 if(a==0){
57                     if(b>=1){
58                         b-=1;
59                         tmp=b%3?b/3+1:b/3;
60                         ans=na+tmp;
61                     }
62                     else {
63                         ans =na;
64                     }
65                     break;
66                 }
67 
68                 b--;
69                 nc++;
70 
71                 if(b==0){
72                     tmp=a%2?a/2+1:a/2;
73                     ans=na+tmp;
74                     break;
75                 }
76 
77             }
78 
79         }
80         printf("%d
",ans);
81     }
82     return 0;
83 }
View Code

 

N

模拟图论

忘记考虑环这种重边这种情况。

以上是关于2019 ICPC NERC的主要内容,如果未能解决你的问题,请参考以下文章

2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest (Online Mirror, ICPC Rules, Teams

2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest 部分题目题解

2019 ICPC 南昌网络赛

2019icpc西安邀请赛

The Preliminary Contest for ICPC Asia Yinchuan 2019

2019icpc上海站 打星体验,首次感想 D K代码