BestCoder Round #83
第一次做BC呀,本来以为会报零的,做了56分钟A了第一题 然后就没有然后了。
贴一下第一次A的代码。
/* 0.组合数 1. 2016-05-14 19:56:49 */ #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> using namespace std; int T,m; ]; ][]; /* long long c(int m,int n) { return f[m]*f[m-n]/f[n]; }*/ void init(int n,int m) { long long i,j; memset(c,,sizeof(c)); ;i<=m;i++) c[][i]=c[][i]=; ;i<=m;i++) c[i][i]=; ;i<=n;i++) c[i][]=; ;i<=n;i++) { ;j<=m;j++) { if(i!=j) c[i][j]=(c[i-][j]+c[i-][j-]); } } /* for(int i=0;i<=30;i++) { c[0][i]=0;c[i][0]=0; } */ } int main() { /* f[0]=0,f[1]=1; for(int i=2;i<=30;i++) { f[i]=f[i-1]*i; } */ init(,); /* for(int i=0;i<=30;i++) for(int j=0;j<=30;j++) cout<<"i="<<i<<"j="<<j<<" c[i]="<<c[i][j]<<endl; */ scanf("%d",&T); while(T--) { scanf("%d",&m); ;i<=m;i++) scanf("%d",&a[i]); sort(a+,a+m+); /* for(int i=1;i<=m;i++) cout<<a[i]<<" "; cout<<endl;*/ ,sumeven=; ;i<=m;i+=) { //从m个里面挑i个 c(m-1,i-1)*a[] for(int j=m;j>=i;j--) { //cout<<sumodd<<" a["<<m-j+1<<"]="<<a[m-j+1]<<" c["<<j-1<<"]["<<i-1<<"]="<<c[i-1][j-1]<<endl; sumodd+=a[m-j+]*c[j-][i-]; } } ;i<=m;i+=) { for(int j=m;j>=i;j--) { sumeven+=a[m-j+]*c[j-][i-]; } } cout<<sumodd-sumeven<<endl; } }
还以为自己很机智,写了个组合数。
后来看了题解才明白过来,答案就是max(ai)。
其实就是整理了一下上面的思路,你想昂,对于某个数ai,以它为最小元素的集合,一共会有2的k-1次个(ai是A中第k大的数)。相当于是比他大的k-1个数组成一个集合,一共有2的k-1次个集合,每个集合再补上元素ai即可。那么所以奇偶互相抵消,直至k=1时只有一个元素了。即最大的那个元素,即max(ai)。
剩下四题一个都看不懂题解 水平太次了。
不过,组合数的写法要学习一下。
组合数 c(m,n)=m! / [ (m-n)!*n! ]
组合数中c(0,n)和c(m,0)都是1!!!这里面 规定了0!=1。
void init(int n,int m) { long long i,j; memset(c,,sizeof(c)); ;i<=m;i++) c[][i]=c[][i]=; ;i<=m;i++) c[i][i]=; ;i<=n;i++) c[i][]=; ;i<=n;i++) { ;j<=m;j++) { if(i!=j) c[i][j]=(c[i-][j]+c[i-][j-]); } } }
BestCoder Round #83的更多相关文章
- HDU 5682/BestCoder Round #83 1003 zxa and leaf 二分+树
zxa and leaf Problem Description zxa have an unrooted tree with n nodes, including (n−1) undirected ...
- hdu 4956 Poor Hanamichi BestCoder Round #5(数学题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4956 Poor Hanamichi Time Limit: 2000/1000 MS (Java/Ot ...
- BestCoder Round #89 02单调队列优化dp
1.BestCoder Round #89 2.总结:4个题,只能做A.B,全都靠hack上分.. 01 HDU 5944 水 1.题意:一个字符串,求有多少组字符y,r,x的下标能组成等比数列 ...
- BestCoder Round #90 //div all 大混战 一题滚粗 阶梯博弈,树状数组,高斯消元
BestCoder Round #90 本次至少暴露出三个知识点爆炸.... A. zz题 按题意copy Init函数 然后统计就ok B. 博弈 题 不懂 推了半天的SG..... 结果这 ...
- bestcoder Round #7 前三题题解
BestCoder Round #7 Start Time : 2014-08-31 19:00:00 End Time : 2014-08-31 21:00:00Contest Type : ...
- Bestcoder round #65 && hdu 5593 ZYB's Tree 树形dp
Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submissio ...
- Bestcoder round #65 && hdu 5592 ZYB's Premutation 线段树
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submissio ...
- Codeforces Beta Round #83 (Div. 1 Only)题解【ABCD】
Codeforces Beta Round #83 (Div. 1 Only) A. Dorm Water Supply 题意 给你一个n点m边的图,保证每个点的入度和出度最多为1 如果这个点入度为0 ...
- 暴力+降复杂度 BestCoder Round #39 1002 Mutiple
题目传送门 /* 设一个b[]来保存每一个a[]的质因数的id,从后往前每一次更新质因数的id, 若没有,默认加0,nlogn复杂度: 我用暴力竟然水过去了:) */ #include <cst ...
随机推荐
- 安装/移除Windows服务
在工作中,涉及到相关Windows的开发时,常常要安装.移除Windows服务程序.一般地,可通过cmd命令行操作来完成~ cd 服务程序所在目录 *.exe -i // 安装服务 *.exe -s ...
- 【linux】英文显示乱码解决
在linux环境中中文显示正常,而英文却显示乱码 用 echo $LANG 显示编码为 zh_CN.GB18030 解决方法: 输入 export LC_ALL=POSIX 即可
- 20145213《Java程序设计》第三周学习总结
20145213<Java程序设计>第三周学习总结 教材学习内容总结 正所谓距离产生美,上周我还倾心于Java表面的基础语法.其简单的流程结构,屈指可数的基本类型分类,早已烂熟于心的运算符 ...
- 细谈CSS布局方式
一.CSS布局方式分类 [1].默认文档流方式:以默认的html元素的结构顺序显示 [2].浮动布局方式:通过设置html的float属性显示,值:none不浮动.left对象向左浮动,而后面的内容流 ...
- swift选择类或结构体
按照通用的准则,当符合一条或多条以下条件时,请考虑构建结构体: 结构体的主要目的是用来封装少量相关简单数据值. 有理由预计一个结构体实例在赋值或传递时,封装的数据将会被拷贝而不是被引用. ? 任何在结 ...
- August 19th 2016 Week 34th Friday
Friends are not the people you meet at the top, they are the people who were with you at the bottom. ...
- oracle两时间相减得到相差的时间
1.months_between(date1,date2);date1和date2相减得到相差的月份. select months_between(to_date('2015-05-11','yyyy ...
- Java ANT build.xml
详情请参考:http://www.cnblogs.com/xionghui/archive/2012/03/13/2393679.html
- 几年前做家教写的C教程(之一)
C语言学习宝典 首先让我们认识什么是C语言. C语言是一种计算机开发语言,是一种非常基础的开发语言.能够用C语言做很多事情.C语言是顺序执行的程序. 程序应该包括数据描述,数据操作. C语言的数据类型 ...
- python类中的super,原理如何?MRO是什么东东?
下面这个URL解释得比较清楚. http://python.jobbole.com/86787/?utm_source=group.jobbole.com&utm_medium=related ...