热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

EducationalCodeforcesRound43(RatedforDiv.2)

EducationalCodeforcesRound43(RatedforDiv.2)https:codeforces.comcontest976A
Educational Codeforces Round 43 (Rated for Div. 2)

https://codeforces.com/contest/976

A
 1 #include
 2 using namespace std;
 3 #define lson l,mid,rt<<1
 4 #define rson mid+1,r,rt<<1|1
 5 #define IT set::iterator
 6 #define sqr(x) ((x)*(x))
 7 #define pb push_back
 8 #define eb emplace_back
 9 #define maxn 200005
10 #define eps 1e-8
11 #define pi acos(-1.0)
12 #define rep(k,i,j) for(int k=i;k13 typedef long long ll;
14 typedef pair<int,int> pii;
15 typedef pairpll;
16 typedef pairint> pli;
17 typedef pairint,string>,pii> ppp;
18 typedef unsigned long long ull;
19 const long long MOD=998244353;
20 const double oula=0.57721566490153286060651209;
21 using namespace std;
22 
23 
24 
25 int main(){
26     std::ios::sync_with_stdio(false);
27     int n;
28     string str;
29     cin>>n>>str;
30     if(str=="0") cout<<0<<endl;
31     else {
32         int co=0;
33         for(int i=0;i){
34             if(str[i]=='0') co++;
35         }
36         cout<<1;
37         for(int i=0;i){
38             cout<<0;
39         }
40         cout<<endl;
41     }
42 }
View Code

 

B
 1 #include
 2 using namespace std;
 3 #define lson l,mid,rt<<1
 4 #define rson mid+1,r,rt<<1|1
 5 #define IT set::iterator
 6 #define sqr(x) ((x)*(x))
 7 #define pb push_back
 8 #define eb emplace_back
 9 #define maxn 200005
10 #define eps 1e-8
11 #define pi acos(-1.0)
12 #define rep(k,i,j) for(int k=i;k13 typedef long long ll;
14 typedef pair<int,int> pii;
15 typedef pairpll;
16 typedef pairint> pli;
17 typedef pairint,string>,pii> ppp;
18 typedef unsigned long long ull;
19 const long long MOD=998244353;
20 const double oula=0.57721566490153286060651209;
21 using namespace std;
22 
23 
24 int main(){
25     std::ios::sync_with_stdio(false);
26     ll n,m,k;
27     cin>>n>>m>>k;
28     if (k<n) {
29         cout<1<<" "<<1<<endl;
30         return 0;
31     }
32     k-=n-1;
33     if (k==0) {
34         cout<" "<<1;
35         return 0;
36     }
37     k-=1;
38     ll l=k/(m-1);
39     k%=(m-1);
40     if((n-l)%2==0) cout<" "<2<<endl;
41     else cout<" "<endl;
42 }
View Code

 

C

题意:是否存在一条线段是否包含另一条线段,有的话就输出其中一个解

思路:sort排序下即可

 1 #include
 2 using namespace std;
 3 #define lson l,mid,rt<<1
 4 #define rson mid+1,r,rt<<1|1
 5 #define IT set::iterator
 6 #define sqr(x) ((x)*(x))
 7 #define pb push_back
 8 #define eb emplace_back
 9 #define maxn 200005
10 #define eps 1e-8
11 #define pi acos(-1.0)
12 #define rep(k,i,j) for(int k=i;k13 typedef long long ll;
14 typedef pair<int,int> pii;
15 typedef pairpll;
16 typedef pairint> pli;
17 typedef pairint,string>,pii> ppp;
18 typedef unsigned long long ull;
19 const long long MOD=998244353;
20 const double oula=0.57721566490153286060651209;
21 using namespace std;
22 
23 
24 vectorint,pair<int,int> > >ve;
25 
26 bool cmp(pair<int,pair<int,int> > a,pair<int,pair<int,int> > b){
27     if(a.second.first==b.second.first) return a.second.second>b.second.second;
28     return a.second.first<b.second.first;
29 }
30 
31 int main(){
32     std::ios::sync_with_stdio(false);
33     int n;
34     cin>>n;
35     int x,y;
36     for(int i=1;i<=n;i++){
37         cin>>x>>y;
38         ve.pb({i,{x,y}});
39     }
40     sort(ve.begin(),ve.end(),cmp);
41     int L=ve[0].second.first,R=ve[0].second.second,pos=ve[0].first;
42     int flag=0;
43     for(int i=1;i){
44         if(L<=ve[i].second.first&&R>=ve[i].second.second){
45             cout<" "<endl;
46             return 0;
47         }
48         L=ve[i].second.first,R=ve[i].second.second,pos=ve[i].first;
49     }
50     if(!flag){
51         cout<<-1<<" "<<-1<<endl;
52     }
53 }
View Code

 

D

题意:

给你一个长度为 n 的正整数序列 d1,d2,,dn (d1<d2<<dn )。要求你构造一个满足以下条件的无向图:

  1. 有恰好 dn+1 个点。
  2. 没有自环。
  3. 没有重边。
  4. 总边数不超过 10^6。
  5. 它的度数集合等于 dd 。

点从 1标号至 dn+1 。

图的度数序列是一个长度与图的点数相同的数组 a,其中 ai 是第 i 个顶点的度数(与其相邻的顶点数)。图的度数集合是度数序列排序后去重的结果。

思路:把前d[1]">d[1]个点向所有点连接一条边后,就会出现有d[1]个度为d[n]的点,剩下的点度都为d[1],然后我们可以继续构造(d[2]-d[1],d[3]-d[1],d[4]-d[1]....d[n-1]-d[1])的点,不断缩小子问题

 1 #include
 2 using namespace std;
 3 #define lson l,mid,rt<<1
 4 #define rson mid+1,r,rt<<1|1
 5 #define IT set::iterator
 6 #define sqr(x) ((x)*(x))
 7 #define pb push_back
 8 #define eb emplace_back
 9 #define maxn 200005
10 #define eps 1e-8
11 #define pi acos(-1.0)
12 #define rep(k,i,j) for(int k=i;k13 typedef long long ll;
14 typedef pair<int,int> pii;
15 typedef pairpll;
16 typedef pairint> pli;
17 typedef pairint,string>,pii> ppp;
18 typedef unsigned long long ull;
19 const long long MOD=998244353;
20 const double oula=0.57721566490153286060651209;
21 using namespace std;
22 
23 
24 vectorve;
25 int d[305];
26 
27 int main(){
28     std::ios::sync_with_stdio(false);
29     int n;
30     cin>>n;
31     for(int i=1;i<=n;i++) cin>>d[i];
32     int L=1,R=n;
33     int co=0;
34     while(L<=R){
35         for(int i=d[L-1]+1;i<=d[L];i++){
36             for(int j=i+1;j<=d[R]+1;j++){
37                 ve.pb({i,j});
38                 co++;
39             }
40         }
41         L++;
42         R--;
43     }
44     cout<endl;
45     for(int i=0;i){
46         cout<" "<endl;
47     }
48 }
View Code

 

E

题意:你有n个小兵,每个小兵都有血条和攻击力,你可以使用a种1操作,b种2操作,是小兵们的攻击力之和最大。1操作:是一个小兵当前血量翻倍 。2操作:把一个小兵当前的血量值赋值给攻击力。

思路:容易想到,把a操作的都给集中给一个小兵是最好的,所以我们可以先按血量-攻击力的差值从大到小排序,然后不断分情况枚举a给谁最好。

 1 #include
 2 using namespace std;
 3 #define lson l,mid,rt<<1
 4 #define rson mid+1,r,rt<<1|1
 5 #define IT set::iterator
 6 #define sqr(x) ((x)*(x))
 7 #define pb push_back
 8 #define eb emplace_back
 9 #define maxn 200005
10 #define eps 1e-8
11 #define pi acos(-1.0)
12 #define rep(k,i,j) for(int k=i;k13 typedef long long ll;
14 typedef pair<int,int> pii;
15 typedef pairpll;
16 typedef pairint> pli;
17 typedef pairint,string>,pii> ppp;
18 typedef unsigned long long ull;
19 const long long MOD=998244353;
20 const double oula=0.57721566490153286060651209;
21 using namespace std;
22 
23 ll n,a,b;
24 vectorve;
25 
26 bool cmp(pll a,pll b){
27     return a.first-a.second>b.first-b.second;
28 }
29 
30 int main(){
31     std::ios::sync_with_stdio(false);
32     ll x,y;
33     cin>>n>>a>>b;
34     b=min(b,n);
35     for(int i=1;i<=n;i++){
36         cin>>x>>y;
37         ve.pb({x,y});
38     }
39     sort(ve.begin(),ve.end(),cmp);
40     ll sum=0;
41     for(int i=0;i){
42         sum+=max(ve[i].first,ve[i].second);
43     }
44     for(int i=b;i){
45         sum+=ve[i].second;
46     }
47     ll ans=sum;
48     for(int i=0;i){
49         ans=max(ans,sum-max(ve[i].first,ve[i].second)+(ve[i].first<<a));
50     }
51     sum-=max(ve[b-1].first,ve[b-1].second)-ve[b-1].second;
52     if(b){
53         for(int i=b;i){
54             ans=max(ans,sum-ve[i].second+(ve[i].first<<a));
55         }
56     }
57     cout<endl;
58 }
View Code

 

F

待补


推荐阅读
  • Codeforces Round #566 (Div. 2) A~F个人题解
    Dashboard-CodeforcesRound#566(Div.2)-CodeforcesA.FillingShapes题意:给你一个的表格,你 ... [详细]
  • 火星商店问题:线段树分治与持久化Trie树的应用
    本题涉及编号为1至n的火星商店,每个商店有一个永久商品价值v。操作包括每天在指定商店增加一个新商品,以及查询某段时间内某些商店中所有商品(含永久商品)与给定密码值的最大异或结果。通过线段树分治和持久化Trie树来高效解决此问题。 ... [详细]
  • 本文探讨了如何在模运算下高效计算组合数C(n, m),并详细介绍了乘法逆元的应用。通过扩展欧几里得算法求解乘法逆元,从而实现除法取余的计算。 ... [详细]
  • 题目Link题目学习link1题目学习link2题目学习link3%%%受益匪浅!-----&# ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 扫描线三巨头 hdu1928hdu 1255  hdu 1542 [POJ 1151]
    学习链接:http:blog.csdn.netlwt36articledetails48908031学习扫描线主要学习的是一种扫描的思想,后期可以求解很 ... [详细]
  • Splay Tree 区间操作优化
    本文详细介绍了使用Splay Tree进行区间操作的实现方法,包括插入、删除、修改、翻转和求和等操作。通过这些操作,可以高效地处理动态序列问题,并且代码实现具有一定的挑战性,有助于编程能力的提升。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文基于刘洪波老师的《英文词根词缀精讲》,深入探讨了多个重要词根词缀的起源及其相关词汇,帮助读者更好地理解和记忆英语单词。 ... [详细]
  • 题目描述:给定n个半开区间[a, b),要求使用两个互不重叠的记录器,求最多可以记录多少个区间。解决方案采用贪心算法,通过排序和遍历实现最优解。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本文详细介绍了如何构建一个高效的UI管理系统,集中处理UI页面的打开、关闭、层级管理和页面跳转等问题。通过UIManager统一管理外部切换逻辑,实现功能逻辑分散化和代码复用,支持多人协作开发。 ... [详细]
  • 探索1000以内的完美数:因数和等于自身
    本文探讨了如何在1000以内找到所有完美数,即一个数的因数(不包括自身)之和等于该数本身。例如,6是一个完美数,因为1 + 2 + 3 = 6。通过编程实现这一过程,可以更好地理解完美数的特性。 ... [详细]
  • 在多线程编程环境中,线程之间共享全局变量可能导致数据竞争和不一致性。为了解决这一问题,Linux提供了线程局部存储(TLS),使每个线程可以拥有独立的变量副本,确保线程间的数据隔离与安全。 ... [详细]
  • 本文介绍了几种不同的编程方法来计算从1到n的自然数之和,包括循环、递归、面向对象以及模板元编程等技术。每种方法都有其特点和适用场景。 ... [详细]
author-avatar
j相知相守相爱
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有