题目来源:2014-2015 ACM-ICPC, Asia Xian Regional Contest

F. Color

第一道二项式反演。。膜题解: https://www.cnblogs.com/wmrv587/p/6681953.html

#include<bits/stdc++.h>
typedef long long ll;
const ll mod = 1e9 + 7;
using namespace std;
ll q_pow(ll a,ll b){ll ans=1;while(b){if(b&1)ans=(ans*a)%mod;a=(a*a)%mod;b>>=1;}return ans;
}
ll n,m,k,inv[1000007];
ll C(ll n,ll m){ll t=1;for(ll i=n-m+1;i<=n;++i)t=(t*i)%mod;for(ll i=1;i<=m;++i)t=(t*inv[i])%mod;return t;
}
ll a(ll x){return ((x%mod)*q_pow(x-1,n-1)%mod)%mod;}
int T,K;
int main() {scanf("%d",&T);for(int i=1;i<=1e6;++i)inv[i]=q_pow(i,mod-2);while(T--){scanf("%lld%lld%lld",&n,&m,&k);ll ans=0,w=1,Cki=1;if(k%2)w=-1;for(int i=0;i<=k;++i,w=-w){ans = (ans%mod + (w*(Cki%mod*a(i)%mod)%mod+mod)%mod)%mod;Cki=(((Cki%mod)*(k-i)%mod)*inv[i+1]%mod)%mod;}ans = (ans*C(m,k))%mod;printf("Case #%d: %lld\n",++K,ans);}
}

C. The Problem Needs 3D Arrays

将有逆序关系的点相连,题目转化为,求最大密度子图。回去复习论文。。

update:今天看了一下,马上就想起来了。。。于是写了一下。。。有点伤感。。。按论文第一种方式建二分图。。。T了?,,于是学了第二种建图。。。精度炸了?倒查了3个小时。。。inf开大了,导致大数,吞小数。。。计方老师。。。终于过了第一个样例。。。T在第二个?查了半小时。。。数组开太大了,还用的memset。。。,改掉成WA了?于是把eps调小了点。。。当我准备改long double时。过了。。。真的是好感伤。。。就读过几篇论文。。。被考到了。。。还不会。。。知道了还写炸。。。没救了。没救了。

#include <bits/stdc++.h>
#define pb(x) push_back(x)
#define LD long double
typedef long long ll;
const int maxn = 510000;
const int maxm = 2100000;
const double eps = 1e-7;
using namespace std;
double inf;
int T,n,a[111];
struct node{int x,y;node(){}node(int a,int b){x=a;y=b;}
};
vector<node> ee;
struct edge{int e,nxt;LD w;}E[maxm];
int h[maxn],cc;
void add(int u,int v,LD w){E[cc].e=v;E[cc].w=w;E[cc].nxt=h[u];h[u]=cc;++cc;E[cc].e=u;E[cc].w=0;E[cc].nxt=h[v];h[v]=cc;++cc;
}
int dd[maxn],q[maxn],st,ed;
int bfs(){int l=0,r=0;for(int i=0;i<=n+1;++i)dd[i]=0;q[r]=st;++r;dd[st]=1;while(l<r){int u=q[l];++l;for(int i=h[u];~i;i=E[i].nxt){int v=E[i].e;if(!dd[v]&&E[i].w>=eps){dd[v]=dd[u]+1;q[r]=v;++r;if(v==ed)return 1;}}}return 0;
}
LD dfs(int u,LD fl) {if(u==ed)return fl;LD s=fl,t;for(int i=h[u];~i;i=E[i].nxt){int v=E[i].e;if(dd[v]==dd[u]+1&&E[i].w>=eps&&s>=eps){t=dfs(v,min(E[i].w,s));s-=t;E[i].w-=t;E[i^1].w+=t;if(s<eps)return fl;}}if(abs(s-fl)<eps) dd[u]=0;return fl-s;
}
LD dinic(){LD ans=0;while(bfs())ans+=dfs(st,inf);return ans;
}
int m,d[111];
void build(LD  g){for(int i=0;i<=n+1;++i)h[i]=-1;cc=0;st=0;ed=n+1;inf=m*3+m*n+m+2*g+10000.0;for(int i=0;i<m;++i){add(ee[i].x,ee[i].y,1.0);add(ee[i].y,ee[i].x,1.0);}for(int i=1;i<=n;++i){add(st,i,m*1.0);add(i,ed,m*1.0+2.0*g-d[i]);}
}
LD  solve(LD  g) {build(g);return (n*m*1.0-dinic());
}
int K=0;
int main() {scanf("%d",&T);while(T--) {ee.clear();scanf("%d",&n);for(int i=1;i<=n;++i)scanf("%d",&a[i]),d[i]=0;for(int i=2;i<=n;++i)for(int j=1;j<i;++j)if(a[j]>a[i]){ee.pb(node(i,j));++d[i];++d[j];}m=ee.size();LD  l=0, r = m, mid;int tt=0;while(r-l>=eps){mid = (l+r)/2.0; LD t = solve(mid);//printf("%f %f\n",(double)mid,(double)t);if(t>eps)l=mid;else r=mid;}printf("Case #%d: %f\n",++K,(double)l);}return 0;
}
//5
//5
//3 4 2 5 1

  

转载于:https://www.cnblogs.com/RRRR-wys/p/9048819.html

Full_of_Boys训练6总结相关推荐

  1. Full_of_Boys训练3总结

    题目来源: 2016-2017 ACM-ICPC Pacific Northwest Regional Contest E.Enclosure 先计算出内外两个凸包,枚举大凸包上的点,在小凸包上找到两 ...

  2. Full_of_Boys训练7总结

    题目来源:2016沈阳区域赛 C.Recursive sequence 矩阵快速幂,思路来自oldz #include <bits/stdc++.h> typedef unsigned l ...

  3. Full_of_Boys训练5总结

    题目来源:2017-2018 ACM-ICPC, NEERC, Moscow Subregional Contest A. Advertising Strategy 贪心方法:把一部分k放到初始值,剩 ...

  4. Full_of_Boys训练4总结

    题目来源:2017-2018 ACM-ICPC Southwestern European Regional Programming Contest (SWERC 2017) A.Cakey McCa ...

  5. Full_of_Boys训练2总结

    题目来源::西安电子科技大学第16届程序设计竞赛网络同步赛 A, B, C: easy problem D. 另一个另一个简单题 做法是加起来,除n.希望会推导的聚聚指点. #include < ...

  6. Full_of_Boys训练1总结

    题目来源: 2017-2018 ACM-ICPC Northern Eurasia (Northeastern European Regional) Contest (NEERC 17) A. Arc ...

  7. 自己动手实现20G中文预训练语言模型示例

    起初,我和大部分人一样,使用的是像Google这样的大公司提供的Pre-training Language Model.用起来也确实方便,随便接个下游任务,都比自己使用Embedding lookup ...

  8. 显卡不够时,如何训练大型网络

    https://mp.weixin.qq.com/s?__biz=MzIwNzc2NTk0NQ%3D%3D&chksm=970c2143a07ba855562ca86bfa19b78a26fe ...

  9. ELECTRA 超过bert预训练NLP模型

    论文:ELECTRA: Pre-training Text Encoders As Discriminators Rather Then Generators 本文目前在ICLR 2020盲审中,前几 ...

最新文章

  1. Java 刷题必须了解的 API
  2. String类中toCharArray()方法的用法
  3. jQuery Mobile滚动事件
  4. python中的ix是啥_python pandas (ix iloc loc) 的区别
  5. 实战:Docker容器虚拟化技术(使用DockerFile构建镜像并搭建 swarm+compose集群)5
  6. 自动驾驶帆船,有史以来第一次成功横渡大西洋
  7. rtcp webrtc 接收_WebRTC RTP/RTCP 源码分析(四):RTCP 的接收和解析
  8. 在java中什么管理内存_Java是如何管理内存
  9. 思科6000系列交换机配置维护手册
  10. 牛腩新闻发布系统(7)——总结
  11. Cts框架解析(19)-设备状态的分类以及恢复模式的分类
  12. Cfree5可以JAVA_无法使用free()释放内存
  13. Linux驱动BSP(I2C 驱动实验)
  14. 武汉市星创天地申报条件和程序
  15. Winedit 下载第三方库
  16. 对发了offer,而没有来入职的应聘者,现在再次来应聘,如果你是面试官,你会录用吗?...
  17. 第四篇:网络安全,SSL/TLS加密技术
  18. 专科程序员“霸面”蚂蚁金服,4轮面试,竟拿下offer(Java方向)
  19. Vue+TS+子组件回调父组件的方法
  20. 中国区块链标准建设分析

热门文章

  1. spss22.0统计分析从入门到精通_数据分析最全资料:SPSS/MATLAB/SQL/SAS/EXCEL经典教材+视频教程,快速入门!...
  2. Java项目几个月能完成_c#项目转JAVA,第5个月,基本完成
  3. java 连接池连接mysql数据库需要哪些jar包_DBCP-基于Java8导入DBCP连接池所需JAR包并编写DBCPUtils工具类...
  4. 7-45 航空公司VIP客户查询 (25 分)(思路+详解+map用法解释+超时解决)兄弟们来呀冲压呀呀呀呀
  5. 前缀和,差分算法训练
  6. JAVA基础知识+基础代码
  7. extern __shared__
  8. 简单排序算法(Java实现)
  9. cf1526 C Potions
  10. 牛客题霸 [删除链表的倒数第n个节点] C++题解/答案