计蒜客NOIP2017提高组模拟赛(三)day2-数三角形
这题有点坑啊
设A为两边颜色不同的角,B为两边颜色相同的角
那么考虑三种三角形:异色,同色,其他
对于任何一个异色三角形,一定会有三个颜色不同的角,
对于任何一个同色三角形,一定会有零个颜色不同的角,
对于任何一个其他三角形,一个会有两个颜色不同的角,
那么A一定等于异色三角形数目*3+其他三角形数目*2
对于任何一个异色三角形,一定会有零个颜色相同的角,
对于任何一个同色三角形,一定会有三个颜色相同的角,
对于任何一个其他三角形,一个会有一个颜色相同的角,
那么B一定等于同色三角形数目*3+其他三角形数目*1
设异色为x种,同色为y中,其他为z种
则A=3x+2z B=3y+z
题目要求的就是3x-6y
发现就是A-2B
然后就水过了~
PS这数据范围10^5也不对啊。。。难道是考虑高精度么。。。
#include<cstdio>
#include<cstdlib>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<map>
#include<set>
#include<queue>
#include<vector>
#define INF 0x7f7f7f7f
#define pii pair<int,int>
#define ll long long
using namespace std;
int n,m;
namespace solve2
{
int G[][];
int n,m;
void solve(){
n=::n,m=::m;
for(int i=;i<=m;i++){
int x,y,c;
scanf("%d%d%d",&x,&y,&c);
G[x][y]=G[y][x]=c;
}
ll ans=;
for(int i=;i<=n;i++){
for(int j=i+;j<=n;j++){
for(int k=j+;k<=n;k++){
if(G[i][j]==G[j][k]&&G[j][k]==G[i][k]){
ans-=;
}
else if(G[i][j]!=G[j][k]&&G[j][k]!=G[i][k]&&G[i][j]!=G[i][k]){
ans+=;
}
}
}
}
printf("%lld\n",ans);
}
}
namespace solve1
{
ll A,B;
int a[][];
int n,m;
void solve(){
n=::n,m=::m;
for(int i=;i<=m;i++){
int x,y,c;
scanf("%d%d%d",&x,&y,&c);c--;
a[x][c]++,a[y][c]++;
}
for(int i=;i<=n;i++){
ll s1=n--a[i][]-a[i][];
ll s2=a[i][];
ll s3=a[i][];
A+=s1*s2+s1*s3+s2*s3;
B+=s1*(s1-)/+s2*(s2-)/+s3*(s3-)/;
}
printf("%lld",A-*B);
}
}
int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if('-'==ch)f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
int main()
{
// freopen("data.in","r",stdin);
n=read(),m=read();
if(n<=){
solve2::solve();
}
else{
solve1::solve();
}
return ;
}
计蒜客NOIP2017提高组模拟赛(三)day2-数三角形的更多相关文章
- 计蒜客NOIP2017提高组模拟赛(三)day1
火山喷发 火山喷发对所有附近的生物具有毁灭性的影响.在本题中,我们希望用数值来模拟这一过程. 在环境里有 n 个生物分别具有 A1,A2,⋯,An点生命值,一次火山喷发总计 MM 轮 ...
- 计蒜客NOIP2017提高组模拟赛(四)day1
T1:小X的质数 小 X 是一位热爱数学的男孩子,在茫茫的数字中,他对质数更有一种独特的情感.小 X 认为,质数是一切自然数起源的地方. 在小 X 的认知里,质数是除了本身和 1 以外,没有其他因数的 ...
- 计蒜客NOIP2017提高组模拟赛(五)day1-展览
传送门 发现这题选或不选对状态的优劣程度不会产生影响,如果已经确定了两个数a和b,那么最优的首项和公比也都是唯一确定的, 与对于后面的数x,加进去也好不加进去也好,首项和公比依旧是原来的 于是我们用尺 ...
- 计蒜客NOIP2017提高组模拟赛(五)day1-机智的 AmyZhi
传送门 很水的题目啦QAQ #include<cstdio> #include<cstdlib> #include<algorithm> #include<c ...
- 计蒜客NOIP2017提高组模拟赛(五)day2-蚂蚁搬家
传送门 这题可以用线段树来维护 #include<cstdio> #include<cstdlib> #include<algorithm> #include< ...
- 计蒜客NOIP2017提高组模拟赛(五)day2-成绩统计
传送门 用hash,因为map的复杂度可能在这题中因为多一个log卡掉,但是hash不会 可能因为这个生成的随机数有循环的情况,不是完全均匀的 而且这题hash表的长度也可以开的很大 #include ...
- 计蒜客NOIP2017提高组模拟赛(三)day2-直线的交点
传送门 简单几何+逆序对 发现当两条直线甲乙与平板的交点在上面甲在较左的位置,那么下面甲在较右的位置就可以相交 然后把上面的位置排下序,下面离散化+树状数组即可 #include<cstdio& ...
- 计蒜客NOIP2017提高组模拟赛(三)day2-小区划分
传送门 dp,注意边界 #include<cstdio> #include<cstdlib> #include<algorithm> #include<cst ...
- 计蒜客 NOIP 提高组模拟竞赛第一试 补记
计蒜客 NOIP 提高组模拟竞赛第一试 补记 A. 广场车神 题目大意: 一个\(n\times m(n,m\le2000)\)的网格,初始时位于左下角的\((1,1)\)处,终点在右上角的\((n, ...
随机推荐
- Beta冲刺第七天
一.昨天的困难 没有困难. 二.今天进度 1.林洋洋:MD图片上传,修复权限问题,修复本地存储判空问题,修复协作申请没有过滤问题. 2.黄腾达:添加文件链接和邀请链接复制功能,协作树界面优化. 3.张 ...
- display属性
display 属性规定元素应该生成的框的类型. 值 描述 none 此元素不会被显示. block 此元素将显示为块级元素,此元素前后会带有换行符. inline 默认.此元素会被显示为内联元素,元 ...
- Spring 以及 Spring MVC Bean元素以及@Bean (Bean 等价于 注解 ??? 没理解错误吧)
①.由衷鸣谢Bossen <还是没看懂o(╥﹏╥)o><> {声明Spring Bean和注入Bean的几种常用注解和区别} Bean在Spring和SpringMVC中无所不 ...
- LeetCode & Q1-Two Sum-Easy
Array Hash Table Question Given an array of integers, return indices of the two numbers such that th ...
- C#之Socket通信
0.虽然之前在项目中也有用过Socket,但始终不是自己搭建的,所以对Server,Clinet端以及心跳,断线重连总没有很深入的理解,现在自己搭建了一遍加深一下理解. 服务端使用WPF界面,客户端使 ...
- BizTalk Server 2016配置 WCF SAP Adapter
BizTalk Server 2016配置 WCF SAP Adapter 最近公司内部需要使用BizTalk与SAP 系统进行对接,虽然SAP/PI可以以发布WebService 的方式实现与外部系 ...
- 新特性GTID
什么是GTID 每提交一个事务,当前的执行过程都会拿到一个唯一的标识符,此标识符不仅对其源mysql 实列是唯一的而在给定的复制环境中的所有mysql 实列也是唯一的,所哟的事务与其GTID 之间都是 ...
- Python内置函数(31)——object
英文文档: class objectReturn a new featureless object. object is a base for all classes. It has the meth ...
- linux 进程间通信的3种高级方式及优缺点
由于不同的进程运行在各自不同的内存空间中.一方对于变量的修改另一方是无法感知的.因此.进程之间的信息传递不可能通过变量或其它数据结构直接进行,只能通进程间通信来完成. 根据进程通信时信息量大小的不同, ...
- Mego开发文档 - 处理并发冲突
处理并发冲突 数据库并发是指多个进程或用户同时访问或更改数据库中的相同数据的情况.并发控制是指用于确保存在并发更改时数据一致性的特定机制. Mego实现了乐观并发控制,这意味着它可以让多个进程或用户独 ...