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

AtCoderRegularContest076

在湖蓝跟衡水大佬们打的第二场atcoder,不知不觉一星期都过去了。任意门C-Reconciled?题意:n只猫,m只狗排队,

在湖蓝跟衡水大佬们打的第二场atcoder,不知不觉一星期都过去了。

任意门

C - Reconciled?

题意:n只猫,m只狗排队,猫与猫之间,狗与狗之间是不同的,同种动物不能相邻排,问有多少种方案。

#include
#include

using namespace std;const int MOD=1e9+7;
int n,m,mmh=1;
int main(){scanf("%d%d",&n,&m);if (n<m) swap(n,m);if (n-m>1) return puts("0"),0;for (int i&#61;1;i<&#61;n;i&#43;&#43;) mmh&#61;1LL*mmh*i%MOD;for (int i&#61;1;i<&#61;m;i&#43;&#43;) mmh&#61;1LL*mmh*i%MOD;if (n&#61;&#61;m) mmh&#61;mmh*2%MOD;printf("%d\n",mmh);
}

View Code

 

 

D - Built?

题意&#xff1a;定义平面上两点间距离为x坐标差和y坐标差的较小值&#xff0c;求最小生成树。

题解&#xff1a;分别按x坐标&#xff0c;y坐标排序后只有相邻的点之间的边是有贡献的。

#include
#include

#define MN 210001
using namespace std;const int MOD&#61;1e9&#43;7;
int n,m,fa[MN],num&#61;0;
long long mmh&#61;0;
struct na{int x,y,p;}p[MN];
struct bi{int x,y,z;}B[MN];
bool cmpx(na a,na b){return a.x<b.x;}
bool cmpy(na a,na b){return a.y<b.y;}
bool cmp(bi a,bi b){return a.z<b.z;}
int gf(int x){return x&#61;&#61;fa[x]?x:fa[x]&#61;gf(fa[x]);}
int main(){scanf("%d",&n);for (int i&#61;1;i<&#61;n;i&#43;&#43;) scanf("%d%d",&p[i].x,&p[i].y),p[i].p&#61;i,fa[i]&#61;i;sort(p&#43;1,p&#43;1&#43;n,cmpx);for (int i&#61;2;i<&#61;n;i&#43;&#43;) B[&#43;&#43;num].x&#61;p[i-1].p,B[num].y&#61;p[i].p,B[num].z&#61;p[i].x-p[i-1].x;sort(p&#43;1,p&#43;1&#43;n,cmpy);for (int i&#61;2;i<&#61;n;i&#43;&#43;) B[&#43;&#43;num].x&#61;p[i-1].p,B[num].y&#61;p[i].p,B[num].z&#61;p[i].y-p[i-1].y;sort(B&#43;1,B&#43;1&#43;num,cmp);for (int i&#61;1;i<&#61;num;i&#43;&#43;){B[i].x&#61;gf(B[i].x);B[i].y&#61;gf(B[i].y);if (B[i].x!&#61;B[i].y) fa[B[i].x]&#61;B[i].y,mmh&#43;&#61;B[i].z;}printf("%lld\n",mmh);
}

View Code

 

 

E - Connected?

题意&#xff1a;给矩形内一些点对&#xff0c;问点对之间连边是否可能不出现相交。

题解&#xff1a;&#xff08;这貌似是GDKOI2013的题&#xff1f;&#xff09;只有边界上的点是有用的&#xff0c;然后把边界展开成一条线段&#xff0c;求区间是否有交即可。

 

F - Exhausted?

题意&#xff1a;求最大匹配&#xff0c;限制是左边的每个点 i 不能与右端的$[L_{i}&#43;1,R_{i}-1]$区间内的点匹配。

题解&#xff1a;把左端的点按$L_{i}$排序&#xff0c;从小到大枚举&#xff0c;如果当前点x可匹配的区间未被匹配完全&#xff0c;那就直接匹配&#xff0c;已经匹配完全就把已被选择的点中$R_{i}$最小的一个点y拿出来&#xff0c;让x顶替y匹配的位置&#xff08;如果$R_{x}<&#61;R{y}$自然就不用换了&#xff09;。最后未被选择的点再强行匹配右端部分即可。

考场上网络流没卡过&#xff0c;就yy了个奇怪的贪心&#xff0c;然后挂掉了。

#include
#include

#include

#include

#define MN 110000
using namespace std;int read_p,read_ca;
inline
int read(){read_p&#61;0;read_ca&#61;getchar();while(read_ca<&#39;0&#39;||read_ca>&#39;9&#39;) read_ca&#61;getchar();while(read_ca>&#61;&#39;0&#39;&&read_ca<&#61;&#39;9&#39;) read_p&#61;read_p*10&#43;read_ca-48,read_ca&#61;getchar();return read_p;
}
struct na{int l,r;}p[MN];
bool cmpl(na a,na b){return a.l&#61;&#61;b.l?a.r>b.r:a.l<b.l;}
priority_queue
<int,vector<int>,greater<int> > q,_q;
int n,m,mmh;
int main(){mmh&#61;n&#61;read();m&#61;read();for (int i&#61;1;i<&#61;n;i&#43;&#43;) p[i].l&#61;read(),p[i].r&#61;read();sort(p&#43;1,p&#43;1&#43;n,cmpl);for (int i&#61;1;i<&#61;n;i&#43;&#43;)if (p[i].l&#61;&#61;q.size()) q.push(p[i].r),_q.push(q.top()),q.pop();else q.push(p[i].r),mmh--;for (int i&#61;q.size()&#43;1;i<&#61;m&&!_q.empty();i&#43;&#43;) if (_q.top()<&#61;i) _q.pop(),mmh--;printf("%d\n",mmh);
}

View Code

 

凭借出前三题的手速还是涨了点rating

转:https://www.cnblogs.com/Enceladus/p/7078148.html



推荐阅读
  • 来自FallDream的博客,未经允许,请勿转载,谢谢。一天一套noi简直了.昨天勉强做完了noi2011今天教练又丢出来一套noi ... [详细]
  • HDU 2537 键盘输入处理
    题目描述了一个名叫Pirates的男孩想要开发一款键盘输入软件,遇到了大小写字母判断的问题。本文提供了该问题的解决方案及实现方法。 ... [详细]
  • 在学习了Splay树的基本查找功能后,可能会觉得它与普通的二叉查找树没有太大的区别,仅仅是通过splay操作减少了时间开销。然而,Splay树之所以被誉为“序列之王”,主要在于其强大的区间操作能力。 ... [详细]
  • STM32代码编写STM32端不需要写关于连接MQTT服务器的代码,连接的工作交给ESP8266来做,STM32只需要通过串口接收和发送数据,间接的与服务器交互。串口三配置串口一已 ... [详细]
  • 题目描述:Balala Power! 时间限制:4000/2000 MS (Java/Other) 内存限制:131072/131072 K (Java/Other)。题目背景及问题描述详见正文。 ... [详细]
  • 本文将详细介绍如何配置并整合MVP架构、Retrofit网络请求库、Dagger2依赖注入框架以及RxAndroid响应式编程库,构建高效、模块化的Android应用。 ... [详细]
  • 2023年1月28日网络安全热点
    涵盖最新的网络安全动态,包括OpenSSH和WordPress的安全更新、VirtualBox提权漏洞、以及谷歌推出的新证书验证机制等内容。 ... [详细]
  • UVa 11683: 激光雕刻技术解析
    自1958年发明以来,激光技术已在众多领域得到广泛应用,包括电子设备、医疗手术工具、武器等。本文将探讨如何使用激光技术进行材料雕刻,并通过编程解决一个具体的激光雕刻问题。 ... [详细]
  • 如何使用Maven将依赖插件一并打包进JAR文件
    本文详细介绍了在使用Maven构建项目时,如何将所需的依赖插件一同打包进最终的JAR文件中,以避免手动部署依赖库的麻烦。 ... [详细]
  • 本文总结了 #define 在 C/C++ 编程中的多种用途和技巧,包括定义常量、函数、宏以及条件编译等,并提供了详细的示例和注意事项。 ... [详细]
  • Excel技巧:单元格中显示公式而非结果的解决方法
    本文探讨了在Excel中如何通过简单的方法解决单元格显示公式而非计算结果的问题,包括使用快捷键和调整单元格格式两种方法。 ... [详细]
  • 本文探讨了如何使用Scrapy框架构建高效的数据采集系统,以及如何通过异步处理技术提升数据存储的效率。同时,文章还介绍了针对不同网站采用的不同采集策略。 ... [详细]
  • 题目概述:Sereja 拥有一个由 n 个整数组成的数组 a1, a2, ..., an。他计划执行 m 项操作,这些操作包括更新数组中的特定元素、增加数组中所有元素的值,以及查询数组中的特定元素。 ... [详细]
  • Gradle 是 Android Studio 中默认的构建工具,了解其基本配置对于开发效率的提升至关重要。本文将详细介绍如何在 Gradle 中定义和使用共享变量,以确保项目的一致性和可维护性。 ... [详细]
  • 本文探讨了如何选择一个合适的序列化版本ID(serialVersionUID),包括使用生成器还是简单的整数,以及在不同情况下应如何处理序列化版本ID。 ... [详细]
author-avatar
歼鸡队队长_512
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有