SRM548 Div1Medium KingdomAndDice
来源:互联网 发布:回到2005年txt下载知轩 编辑:程序博客网 时间:2024/06/06 19:48
解题思路
首先显然要先对
而对于某一个值
于是对于每个等于
当然博主因为比较懒,直接每个区间存了
当然,你还需要储存一下这个数所代表的区间有多长,然后算出对答案的贡献
我们定义
显然
//
然后最后我们可以用
即当
若
则
(原先
代码如下:
#include<bits/stdc++.h>using namespace std;#define M 20005int dp[M];vector<int>A,B,S;set<int>numA;int main(){ int n; scanf("%d",&n); for(int i=1;i<=2*n;i++){ int x; scanf("%d",&x); if(i<=n)A.push_back(x); else B.push_back(x); } int X; scanf("%d",&X); for(int i=0;i<n;i++)numA.insert(A[i]); B.push_back(0);B.push_back(X+1); sort(B.begin(),B.end()); int m=0,sum=0; for(int i=0;i<n;i++){ m+=A[i]==0; for(int j=1;j<=n;j++) sum+=A[i]>B[j]; } for(int i=0;i<=n;i++) for(int j=B[i]+1,c=0;j<B[i+1]&&c<n;j++,c++) if(numA.find(j)==numA.end()){ int cnt=0; for(int k=1;k<=n;k++)cnt+=B[k]<j; S.push_back(cnt); }//预处理 dp[0]=0; for(int i=1;i<=n*n;i++)dp[i]=m+1; for(int i=0;i<S.size();i++) for(int j=n*n;j>=1;j--) if(j-S[i]>=0)dp[j]=min(dp[j],dp[j-S[i]]+1);//dp int res=-1; for(int i=0;i<=n*n;i++) if(dp[i]<=m) if(res==-1||abs(2*(i+sum)-n*n)<abs(2*res-n*n)) res=i+sum;//更新答案 printf("%.8f\n",1.0*res/n/n); return 0;}
2 0
- SRM548 Div1Medium KingdomAndDice
- SRM548 Div1Medium KingdomAndDice
- [DP] TopCoder SRM548 Div1 450. KingdomAndDice
- SRM548
- Topcoder SRM548 div2
- SRM551 Div1Medium ColorfulWolves
- SRM573 Div1Medium Ski Resorts
- SRM574 Div1Medium PolygonTraversal
- SRM579 Div1Medium TravellingPurchasingMan
- SRM588 Div1Medium KeyDungeonDiv1
- SRM589 Div1Medium GearsDiv1
- SRM554 Div1Medium TheBrickTowerMediumDivOne
- SRM551 Div1Medium ColorfulWolves
- SRM593 Div1Medium MayTheBestPetWin
- SRM573 Div1Medium Ski Resorts
- SRM579 Div1Medium TravellingPurchasingMan
- SRM588 Div1Medium KeyDungeonDiv1
- SRM589 Div1Medium GearsDiv1
- 整理的前端面试题3
- 编写你自己的单点登录(SSO)服务
- 哈哈
- 一条语句交换两个元素值
- Density Peak改进(overlapping)
- SRM548 Div1Medium KingdomAndDice
- 过滤器和监听器
- nyoj541 最强DE 战斗力 (大数问题)
- linux osx 查看文件编码
- atexit函数
- 【数据库】内连接、左连接、右连接、全连接、自连接
- 如何更改linux文件的拥有者及用户组(chown和chgrp)
- python2.7使用pip安装模块报错Unable to find vcvarsall.bat
- 使用ImageLoader实现图片异步加载