安徽省2014年京胜杯.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
安徽省2014年京胜杯.doc

安徽省2014年“京胜杯” 大学生程序设计竞赛题解 目录 Problem A 死神君 Problem B 幸运抽奖 Problem C 雨花石 Problem D 路边骗局 Problem E 闭合折线 Problem F 中位数 Problem G 国王的战争 Problem H 图像匹配 Problem I 关于最大公约数的疑惑 Problem J 一道简单的几何变换 2014.5 A.死神君 Time Limit: 1s 本题只要不断找到一个“低--高--低”的极值点,将中间高的蜡烛与它旁边两支蜡烛中较高的那支合并即可。找出所有极值点合并以后,将会得到一个递增或递减的序列,此时只要从较高的那一头两两合并,便能得出最大值。 处理方面,我们注意到如果第一支(就是排在最左边的)蜡烛比第二支蜡烛要高,那么它们必然要合并,如果比第二支低我们就继续往下找第三支,直到出现了“低--高--低”的组合,我们直接对其进行处理,直到维护出一个递增的序列,用栈做维护即可,具体请见代码。 本题可以找出规律,按照上面的计算方法得出的结果,与min(ai,ai+1)(i=1,2...n-1)这n-1个数的累加和结果相同的,比赛的时候过的人基本都是用了这种方法,一不小心就被水过去了,具体证明我就不写了,是可以验证结果一致的。 标程: #include iostream #include cstdio #include cstring #include algorithm #include cmath using namespace std; #define MM(arr,ele) memset(arr,ele,sizeof(arr)) #define FOR(i,a,b) for(int i=a;i=b;i++) #define FFF(i,a) for(int i=0;ia;i++) #define FFD(i,a,b) for(int i=a;i=b;i--) #define LL long long #define i64 __int64 #define lson l,mid,rt1 #define rson mid+1,r,rt1|1 #define SC(a) scanf(%d,a) int s; int main(){ int n; while (~SC(n)){ int x,p=1; int ans=0; SC(s[1]); s[0]=-1; FFF(i,n-1){ SC(x); if (xs[p]){ while (xs[p]p0){ ans+=max(s[p-1],x); p--; } s[++p]=x; } else s[++p]=x; } FFD(i,p-1,1) ans+=s[i]; coutansendl; } return 0; } B.幸运抽奖 Alice和Bob最近在玩一个抽奖游戏, 游戏规则如下: 考虑题意可知: Alice所有可能的抽奖结果有C(N, K)种, Bob的也是. 故两者一起的所有抽奖结果有S = C(N, K) * C(N, K)种. 在这所有的抽奖结果中, 只有三种情况: a. Alice得分高于Bob, 记为A(即所求) b. Bob得分高于Alice, 记为B c. Alice得分和Bob一样多, 记为C 易得A = B, 故从反面来看, 有A = (S - C) / 2; 记f[x]为得分为x的抽奖结果种数, 那么有: C = sigma(f[x] * f[x]), x的范围是[(1 + k) * k / 2, (n + (n - k + 1)) * k / 2]. 对于f[x]的dp求解方案如下: 记h[x][j]为当前的1到i的小球中,选取j个小球, 得分为x的抽奖结果种数, 则有边界值为h[0][0] = 1, 其余为0, 转移为: for i := 1 to n do for x := max_x downto min_x do for j := 1 to

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档