也是CF985G。。。

容斥+三元环计数

CF数据太弱啦

vis没赋初值-1竟然过了QAQ

所以又调了我半个小时才搞掉QAQ

数数真难QAQ

记得要写#include<vector>!!!

Dev给加的奇奇怪怪的编译选项会给你自动填补的!!!

QAQ长个记性QAQ

#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<vector>
#define ull unsigned long long
#define ll long long
#define inf 20021225
#define N 400010
#define it vector<int>::iterator
using namespace std; int sz[N],deg[N],n,m;
vector<ull> sum[N];
vector<int> ed[N];
struct edge{int to,lt;}e[N];
int in[N],cnt; int vis[N];
void add(int x,int y){e[++cnt].to=y;e[cnt].lt=in[x];in[x]=cnt;}
void go(int x){for(int i=in[x];i;i=e[i].lt) vis[e[i].to]=x;}
ull calc(int x){if(x<) return ; return (ll)x*(x-)/;}
ull up(int l,int r){if(l>r) return ; return (ll)(r+l)*(r-l+)/;}
int main()
{
scanf("%d%d",&n,&m); ull A,B,C,res=;
scanf("%llu%llu%llu",&A,&B,&C); int x,y;
//scanf("%I64d%I64d%I64d",&A,&B,&C); int x,y;
for(int i=;i<=m;i++)
{
scanf("%d%d",&x,&y);
ed[x].push_back(y);
ed[y].push_back(x);
}
//ull edg=(ull)n*(n-1)>>1;
//at least 0
for(int i=;i<n;i++)
res+=A*i*calc(n-i-),
res+=B*i*i*(n-i-),
res+=C*i*calc(i),
sort(ed[i].begin(),ed[i].end()),
sum[i].push_back();
//printf("%llu\n",res);
for(x=;x<n;x++) for(it i=ed[x].begin();i!=ed[x].end();i++)
sz[x]=(*i)>x?sz[x]:sz[x]+,++deg[x],sum[x].push_back(sum[x][deg[x]-]+(*i));
//at least 1
for(x=;x<n;x++) for(it i=ed[x].begin();i!=ed[x].end();i++)
if((*i)<x)
{
y=*i;
//x as B
res-=B*x*(n-x-);
res-=A*y*(n-x-);
res-=C*up(x+,n-);
//x as C
res-=A*up(,y-);
res-=B*y*y;
res-=B*up(y+,x-);
res-=A*y*(x-y->?x-y-:);
res-=C*x*(x-);
}
//printf("%llu\n",res);
//at least 2
//int dig;
//printf("%llu\n",res);
for(x=;x<n;x++) for(int i=;i<=deg[x];i++)
{
//printf("%d %llu\n",x,sum[x][i]);
//x has 2 edges out
y=ed[x][i-];
if(y>x)
{
//x is A
res+=A*x*(deg[x]-i); res+=B*y*(deg[x]-i);
res+=C*(sum[x][deg[x]]-sum[x][i]);
//printf("%d %d %llu\n",x,y,res);
}
else// if(y<x)
{
//x is B
res+=B*x*(deg[x]-sz[x]); res+=A*y*(deg[x]-sz[x]);
res+=C*(sum[x][deg[x]]-sum[x][sz[x]]);
//x is C
res+=C*x*(i-); res+=B*y*(i-);
res+=A*sum[x][i-];
}
}
//printf("%llu\n",res);
//at least 3
/**for(int i=1;i<=n;i++)
{
if(deg[i]<=top)
{
for(int j=0;j<deg[i];j++)
{
for(int k=j+1;k<deg[i];k++)
{
x=i; y=ed[x][j]; z=ed[x][k];
if(x>y) swap(x,y);
if(x>z) swap(x,z);
res-=A*x+B*y+C*z;
}
}
}
else big.push_back(i);
}*/
for(x=;x<n;x++) for(int i=;i<deg[x];i++)
if(deg[ed[x][i]]<deg[x] || (deg[ed[x][i]]==deg[x]&&ed[x][i]<x))
add(x,ed[x][i]);
memset(vis,-,sizeof(vis));
for(x=;x<n;x++)
{
go(x);
for(int i=in[x];i;i=e[i].lt)
{
y=e[i].to;
for(int j=in[y];j;j=e[j].lt)
{
if(vis[e[j].to]==x)
{
int xx=x,yy=y,zz=e[j].to;
if(xx>yy) swap(xx,yy);
if(xx>zz) swap(xx,zz);
if(yy>zz) swap(yy,zz);
res-=A*xx+B*yy+C*zz;
}
}
}
}
printf("%llu\n",res);
//printf("%I64u\n",res);
return ;
}
/**
4 1
2 3 4
1 0
*/

由于这个题调的我太过痛苦 写作业都写不进去

bug列举一下

1.我不会冒泡排序排三个数

2.(0,n-1)看成(1,n)重调系数非常蛋疼

3.初值就是忘了赋

4.系数和值少一个

5.手贱

[BZOJ5407]girls的更多相关文章

  1. 2013成都网络赛 C We Love MOE Girls(水题)

    We Love MOE Girls Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  2. 123——Appium Girls活动

    有感于Ruby Girls和Python Girls,在15年就想组织一次移动测试的妹子活动,框架选择Appium, 从15年夏天开始准备,申请Google的会议室,招募教练,开放报名,审核报名,到正 ...

  3. HDU 5145 NPY and girls 莫队+逆元

    NPY and girls Problem Description NPY's girlfriend blew him out!His honey doesn't love him any more! ...

  4. 回文串--- Girls' research

    HDU   3294 Problem Description One day, sailormoon girls are so delighted that they intend to resear ...

  5. POJ 1466 Girls and Boys

    Girls and Boys Time Limit: 1 Sec  Memory Limit: 256 MB 题目连接 http://poj.org/problem?id=1466 Descripti ...

  6. 数学+高精度 ZOJ 2313 Chinese Girls' Amusement

    题目传送门 /* 杭电一题(ACM_steps 2.2.4)的升级版,使用到高精度: 这次不是简单的猜出来的了,求的是GCD (n, k) == 1 最大的k(1, n/2): 1. 若n是奇数,则k ...

  7. Girls and Boys

    Girls and Boys Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. Acdream Chinese Girls' Amusement

    A - Chinese Girls' Amusement Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Jav ...

  9. HDU----(3294)Girls' research(manacher)

    Girls' research Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)T ...

随机推荐

  1. ORACLE错误:ORA-28001: the password has expired解决方法

    Oracle提示错误消息ORA-28001: the password has expired,是由于Oracle11G的新特性所致, Oracle11G创建用户时缺省密码过期限制是180天(即6个月 ...

  2. [CSP-S模拟测试]:Game(模拟)

    题目传送门(内部题62) 输入格式 第一行两个整数$n,K$表示序列长度和游戏数 第二行$n$个数为序列$a_i$ 第三行$K$个数,为$p_i$ 输出格式 输出有$K$行,第$i$行为第$i$次游戏 ...

  3. 2019牛客暑期多校训练营(第九场)H Cutting Bamboos(主席树+二分)

    题意:n个竹子,有高度,q次询问,询问之间是独立的,每次查询输入l,r,x,y代表砍区间[l,r]]内的竹子砍y次,最后一次要砍成0,每次砍掉的总长度相同,问第x次砍的高度是多少. 既然每次要求砍掉的 ...

  4. oracle sqldeveloper选择性复制备份数据库

    有时需要复制的数据库比较大,复制太慢,或容易出错. 数据库小,简单的 就没这么复杂了,直接导出dmp或用工具都可以.这篇是针对比较大,选择性复制,且复制总是失败的情况. 方法如下. 工具 sqldev ...

  5. Java多线程,实现卖电影票的业务

    本篇重点:多线程共享资源时发生的互斥问题 一般的我们售卖电影票或者火车票时会有多个窗口同时买票, 我们来看测试代码:主方法new一个Ticket(一个堆),之后三个线程来启动(三个窗口买票) clas ...

  6. 史上最全USB HID开发资料

    史上最全USB HID开发资料 史上最全USB HID开发资料,悉心整理一个月,亲自测试. 涉及STM32 C51 8051F例子都有源码,VC上位机例子以及源码,USB协议,HID协议,USB抓包工 ...

  7. 4期Web安全基础

    介绍了web安全的各种常见漏洞.视频卡顿,建议直接看网易出品的白帽子视频. 类似的教程还有,网易白帽子的教程:参考简书https://www.jianshu.com/p/1b372ca96b87 在看 ...

  8. Visual Studio中把文件夹导入工程中

    VS用到的功能还是太少,记录备忘. 有的时候需要把其他库的源码导入当前工程直接使用,而这个库是源码形式,又带很多目录的. 之前从没遇到过这种情况,自己的库目录自己新建,添加. 第三方库一般有单独的Pr ...

  9. jQuery基础--创建节点和 添加节点

    创建节点 $(function () { // var box = document.getElementById("box"); // // var a = document.c ...

  10. SAS去空格

    data test;       x="  aaa     bbb hahaha";       x1=compress(x);       x2=left(x);       p ...