博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #541 (Div. 2)
阅读量:7215 次
发布时间:2019-06-29

本文共 2144 字,大约阅读时间需要 7 分钟。

确认过眼神,是div2的人

a Sea Battle

题意:

将两个紧邻的矩形围起来需要的方块数

周长+4

b Draw

题意:

给定出现的分数,求最多可能出现的平局数

计算\((x_i:y_i) to (x_{i+1},y_{i+1})\)可能出现的平局数,可包含一边,如左边,如果不一样,最后可特判右边是否为平局

code

#include 
using namespace std;#define ll long long;#define inf 0x3f3f3f3f#define CL(a,b) memset(a,b,sizeof(a))#define sf(a) scanf("%d",&a)#define pr(a) printf("%d\n",a)#define db(a) printf("db %d\n",a)#define fr0(i,m) for(int i=0;i

c Birthday

题意:

排列n个数使得\(abs(a_{i+1}-a_i)\)的最大值最小化,包含\(a_{n-1}-a_0\)的情况

构造的做:排序,从小到大一次从两边向中间放,即数组边缘小,数组中心大
证明:
假设排序后的结果为\(a_0,a_1..a_i,a_{i+1}..a_{n-1}\) ,显然我们的做法不会大于\(max(a_{i+2}-a_i)\);
下面只需证明,任何一种做法都不会小于\(max(a_{i+2}-a_{i})\) 盗用codeforce图进行证明:
c

要使其小于\(a_{i+2}-a_{i}\)\(a_{i+2}\)\(a_i\)之间必须有\(a_{i+1}\),同时\(a_{i+2}\)右边一定是更大的,\(a_i\)左边一定是更小的,那么最左端和最右端就矛盾了.

code

#include 
using namespace std;#define ll long long;#define inf 0x3f3f3f3f#define CL(a,b) memset(a,b,sizeof(a))#define sf(a) scanf("%d",&a)#define pr(a) printf("%d\n",a)#define db(a) printf("db %d\n",a)#define fr0(i,m) for(int i=0;i
>1; int b=n-1-a; ans[a]=hei[i]; if(i+1

D. Gourmet choice

题意

给出n个菜和m个菜之间的相互关系(>,<,=),问是否矛盾,不矛盾则给出最少需要的等级编号

并查集缩点+有向无环图的最长路径(注意建图方式)

code

#include 
using namespace std;#define ll long long;#define inf 0x3f3f3f3f#define CL(a,b) memset(a,b,sizeof(a))#define sf(a) scanf("%d",&a)#define sfs(a) scanf("%s",a);#define pr(a) printf("%d\n",a)#define db(a) printf("db %d\n",a)#define fr0(i,m) for(int i=0;i
q; for(int i=0;i
'){ add(find(j+n),find(i)); } else if(mp[i][j]=='<'){ add(find(i),find(j+n)); } } } //topo序的存在性和最长路径 int ans=topo(); if(ans==1){ printf("No\n"); return 0; } else{ printf("Yes\n"); for(int i=0;i

F. Asya And Kittens

题意

从合并的顺序推出相邻顺序,(只有相邻的集合才能合并)

并查集+模拟链表(自己写的是静态链表)
每次合并将链表也及进行合并,因为合并意味着集合相邻,即这些元素相邻

code

#include 
using namespace std;//author:fridayfang//date:19 2月 24//global varibles#define ll long long;#define inf 0x3f3f3f3f#define CL(a,b) memset(a,b,sizeof(a))#define sf(a) scanf("%d",&a)#define pr(a) printf("%d\n",a)#define db(a) printf("db %d\n",a)#define fr0(i,m) for(int i=0;i

e题好复杂,g题不会做

转载于:https://www.cnblogs.com/fridayfang/p/10426698.html

你可能感兴趣的文章
Java基础学习总结(21)——数组
查看>>
js格式化日期
查看>>
定时与延时任务
查看>>
Squid 日志分析 和反向代理
查看>>
Hadoop的安装及一些基本概念解释
查看>>
大容量分区命令parted
查看>>
从输入 URL 到页面加载完成的过程中都发生了什么事情?
查看>>
实例讲解JQuery中this和$(this)区别
查看>>
centos 7 静态ip地址模板
查看>>
影响系统性能的20个瓶颈
查看>>
shell的详细介绍和编程(上)
查看>>
软件开发性能优化经验总结
查看>>
面试题编程题05-python 有一个无序数组,如何获取第K 大的数,说下思路,实现后的时间复杂度?...
查看>>
kendo grid序号显示
查看>>
Spring 教程(二) 体系结构
查看>>
Indexes
查看>>
2.Web中使用iReport 整合----------创建html格式的
查看>>
异常备忘:java.lang.UnsupportedClassVersionError: Bad version number in .class file
查看>>
最全三大框架整合(使用映射)——applicationContext.xml里面的配置
查看>>
初步理解Java的三大特性——封装、继承和多态
查看>>