码迷,mamicode.com
首页 > 其他好文 > 详细

2019 ICPC NERC

时间:2019-11-14 18:28:15      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:min   多少   icp   amp   contest   技术   col   close   hid   

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("\n");
25     for(int i=1;i<=n;i++){
26         printf("%d ",post[i].p);
27     }
28     printf("\n");
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\n",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\n",ans);
81     }
82     return 0;
83 }
View Code

 

N

模拟图论

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

2019 ICPC NERC

标签:min   多少   icp   amp   contest   技术   col   close   hid   

原文地址:https://www.cnblogs.com/ordinarv/p/11858778.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!