05.24 ICPC 2019-2020 North-Western Russia Regional Contest复现赛+Codeforces Round #645 (Div. 2)
Posted bonel
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05.24 ICPC 2019-2020 North-Western Russia Regional Contest复现赛+Codeforces Round #645 (Div. 2)相关的知识,希望对你有一定的参考价值。
A.Accurate Movement(复现赛)
题意:两个木块最左边都在0的位置,最右边分别为a,b(b>a),并且短的木条只能在长木条内移动,问两个木条需要移动多少次才能使两个木条的右端都在n
思路:短木条最少移动(n-a)/(b-a),如果(n-a)%(b-a)不为0,那么还需要再多移动一次,才能到达最右边,长木条以此类推
代码:
1 #include<iostream> 2 #include<algorithm> 3 #include<cmath> 4 #include<cstdio> 5 using namespace std; 6 int main(){ 7 int a,b,n; 8 scanf("%d %d %d",&a,&b,&n); 9 int sum=0; 10 if((n-a)%(b-a)==0){ 11 sum+=(n-a)/(b-a); 12 }else{ 13 sum+=(n-a)/(b-a)+1; 14 } 15 if((n-b)%(b-a)==0){ 16 sum+=(n-b)/(b-a); 17 }else{ 18 sum+=(n-b)/(b-a)+1; 19 } 20 printf("%d ",sum); 21 }
A. Park Lighting(#645)
题意:安放路灯在棱上,可以点亮以这条楞为公共线的正方形小块上,问需要多少个灯才能点亮整个大矩形,输入为大矩形的场合宽
思路:直接判断矩形个数是不是偶数,如果是,那么就可以用(长×宽)/2,如果不是,就是需要额外的一个点亮剩下的一个
代码:
1 #include<iostream> 2 #include<algorithm> 3 #include<cstdio> 4 #include<cmath> 5 using namespace std; 6 int main(){ 7 int t; 8 scanf("%d",&t); 9 while(t--){ 10 int a,b; 11 scanf("%d %d",&a,&b); 12 if((a*b)%2==1){ 13 printf("%d ",a*b/2+1); 14 }else{ 15 printf("%d ",a*b/2); 16 } 17 } 18 }
B. Maria Breaks the Self-isolation
题意:起初院子中一个老奶奶,然后它可以喊任意个其他的老奶奶,但是这些老奶奶出现的要求是,当她出现时必须看到除她以外的a[i]个人,判断院子中最多可以喊多少个老奶奶
思路:采用优先队列,从需要看见人数最多的老奶奶开始,如果这个数小于1加上院子中可进去的人数(先假设同时间去),那么就说明可以同时来,如果大于,也就是说即使同一时间进去也不能满足最后一个老奶奶,然后出栈(为了变化top)
wa掉的/注意的:1.需要从最大到最小遍历,因为这样能知道确切的这个人是不是进的去进不去,这样一来需要思考的变化因素就很少,不用天南海北的进行纠结到底怎么选;2.其实这种做法有种第一次打电话就给所有的人打电话,从最后向前遍历,找到是不是真的可以满足,每个人都开心的进院子;3.一定出栈进行变换top;4.我不知道我为什么用sort就超时了,用优先队列就不超时
代码:
1 #include<iostream> 2 #include<algorithm> 3 #include<cstdio> 4 #include<cmath> 5 #include<queue> 6 using namespace std; 7 int main(){ 8 int t; 9 scanf("%d",&t); 10 while(t--){ 11 int r,n; 12 scanf("%d",&n); 13 priority_queue<int> a; 14 for(int i=0;i<n;i++){ 15 scanf("%d",&r); 16 a.push(r); 17 } 18 int s=0,m=n; 19 20 for(int i=0;i<n;i++){ 21 if(a.top()<1+m){ 22 s++; 23 }else{ 24 m--; 25 } 26 a.pop(); 27 } 28 printf("%d ",s+1); 29 } 30 }
我实在是太菜了,导致我最近做的题不是很多,但是时间话得特别长,还是应该偶尔看看算法书,只靠思维题是不行了,而且有的思维题读题真的好麻烦,最近专业课落得好多,绝望!!!
以上是关于05.24 ICPC 2019-2020 North-Western Russia Regional Contest复现赛+Codeforces Round #645 (Div. 2)的主要内容,如果未能解决你的问题,请参考以下文章
2019-2020 ICPC Southwestern European Regional Programming Contest (SWERC 2019-2020)
2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest (Online Mirror, ICPC Rules, Teams
2019-2020 ICPC, Asia Jakarta Regional Contest
2019-2020 ICPC, Asia Jakarta Regional Contest C. Even Path
2019-2020 ICPC, NERC, Southern and Volga Russian Regional Contest
2019-2020 ICPC, Asia Jakarta Regional Contest H. Twin Buildings