原文链接http://www.cnblogs.com/zhouzhendong/p/8934254.html

题目传送门 - ARC082 E

题意

  给定二维平面上的$n$个点,定义全集为那$n$个点,求所有满足条件的子集的$Score$和。

  条件:要求子集中的点能构成凸多边形。

  $Score$的定义:记子集大小为$|s|$,记子集中的点围成的凸多边形中的点的个数(包括端点和边界)为$n$,则$score=2^{n-|s|}$。

  答案对于$998244353$取模。

  $n\leq 200,0\leq x_i,y_i<10000$。

题解

  插曲:一开始总想DP,后来看了题解才恍然大悟。

  题意等价于让你求可以构成凸包的点集个数。

  所以,只需要对共线的点集个数进行计数即可。

  记得删掉单点的和没点的情况。

代码

#include <bits/stdc++.h>
using namespace std;
const int N=205,mod=998244353;
int n,x[N],y[N],Pow[N];
int main(){
scanf("%d",&n);
Pow[0]=1;
for (int i=1;i<=n;i++)
scanf("%d%d",&x[i],&y[i]),Pow[i]=Pow[i-1]*2%mod;
int ans=(Pow[n]-n-1+mod)%mod;
for (int i=1;i<=n;i++)
for (int j=i+1;j<=n;j++){
int cnt=0;
for (int k=j+1;k<=n;k++)
if ((x[i]-x[k])*(y[j]-y[k])==(x[j]-x[k])*(y[i]-y[k]))
cnt++;
ans=(ans-Pow[cnt]+mod)%mod;
}
printf("%d",ans);
return 0;
}

  

AtCoder Regular Contest 082 (ARC082) E - ConvexScore 计算几何 计数的更多相关文章

  1. AtCoder Regular Contest 082 D Derangement

    AtCoder Regular Contest 082 D Derangement 与下标相同与下个交换就好了.... Define a sequence of ’o’ and ’x’ of lengt ...

  2. 【计算几何】【推导】【补集转化】AtCoder Regular Contest 082 E - ConvexScore

    题意:平面上给你N个点.对于一个“凸多边形点集”(凸多边形点集被定义为一个其所有点恰好能形成凸多边形的点集)而言,其对答案的贡献是2^(N个点内在该凸多边形点集形成的凸包内的点数 - 该凸多边形点集的 ...

  3. AtCoder Regular Contest 082

    我都出了F了……结果并没有出E……atcoder让我差4分上橙是啥意思啊…… C - Together 题意:把每个数加1或减1或不变求最大众数. #include<cstdio> #in ...

  4. 【推导】【模拟】AtCoder Regular Contest 082 F - Sandglass

    题意:有个沙漏,一开始bulb A在上,bulb B在下,A内有a数量的沙子,每一秒会向下掉落1.然后在K个时间点ri,会将沙漏倒置.然后又有m个询问,每次给a一个赋值ai,然后询问你在ti时刻,bu ...

  5. 【推导】AtCoder Regular Contest 082 D - Derangement

    题意:给你一个排列a,每次可以交换相邻的两个数.让你用最少的交换次数使得a[i] != i. 对于两个相邻的a[i]==i的数,那么一次交换必然可以使得它们的a[i]都不等于i. 对于两个相邻的,其中 ...

  6. AtCoder Regular Contest 082 E

    Problem Statement You are given N points (xi,yi) located on a two-dimensional plane. Consider a subs ...

  7. AtCoder Regular Contest 082 F

    Problem Statement We have a sandglass consisting of two bulbs, bulb A and bulb B. These bulbs contai ...

  8. AtCoder Regular Contest 082 ABCD

    A #include<bits/stdc++.h> using namespace std; ]; int n,m; int main(){ cin>>n>>m; ...

  9. 【AtCoder Regular Contest 082 F】Sandglass

    [链接]点击打开链接 [题意] 你有一个沙漏. 沙漏里面总共有X单位的沙子. 沙漏分A,B上下两个部分. 沙漏从上半部分漏沙子到下半部分. 每个时间单位漏1单位的沙子. 一开始A部分在上面.然后在r1 ...

随机推荐

  1. 解决layui选中项下一页清空问题

    项目中遇到给用户在所有产品中匹配一部分产品.用layui 第一页选好之后到第二页再选,等回到第一页时之前选择的都没了,解决这个问题的办法如下: //勾选的产品id集合 var chooseAdids ...

  2. iOS NSArray 的count方法返回的是无符号整形!

    ){ return cell; } 这样写是错误的!!!当数组为空时,由于count方法返回的是无符号整形,没有负数,self.requests.count -1是一个非常大的正数! 正确写法: &g ...

  3. Go语言从入门到放弃(三) 布尔/数字/格式化输出

    本章主要介绍Go语言的数据类型 布尔(bool) 布尔指对或者错,也就是说bool只有两个值, True 或 False 两个类型相同的值可以使用比较运算符来得出一个布尔值 当两个值是完全相同的情况下 ...

  4. python 启动虚拟环境

    假设你有两个Python项目-A和B,这两个项目都需要使用同一个第三方模块-tensorflow.如果这两个项目使用相同的tensorflow版本,也许不会有什么问题. 但是,当A和B项目使用不同的t ...

  5. 【MySql】Order By 排序

    你可以使用任何字段来作为排序的条件,从而返回排序后的查询结果. 你可以设定多个字段来排序. 你可以使用 ASC 或 DESC 关键字来设置查询结果是按升序或降序排列. 默认情况下,它是按升序排列. 你 ...

  6. Confluence 6 管理 Atlassian 提供的 App

    Confluence 用户可以使用桌面应用来编辑一个已经上传到 Confluence 的文件,然后这个文件自动保存回 Confluence. 这个下载和上传的过程是通过 Atlassian Compa ...

  7. AXI Traffic Generator 生成axi-lite axi4 axis 的IP

    addr.coe memory_initialization_radix = ; memory_initialization_vector = ,,,,,,,,ffffffff; ctrl.coe m ...

  8. LeetCode(2): 两数相加

    本内容为LeetCode第二道题目:两数相加 # -*- coding: utf-8 -*- """ Created on Sun Mar 10 10:47:12 201 ...

  9. php安装扩展

    php安装扩展 以前以为php的扩展要重新编译php,今天在群友的指点下知道可以像apache模块一样动态扩展,以mcrypt举例. 进入要安装的扩展的源码目录cd /root/php-5.2.6/e ...

  10. hdfs数据到hbase过程

    需求:将HDFS上的文件中的数据导入到hbase中 实现上面的需求也有两种办法,一种是自定义mr,一种是使用hbase提供好的import工具 一.hdfs中的数据是这样的 hbase创建好表 cre ...