[DP] TopCoder SRM548 Div1 450. KingdomAndDice
来源:互联网 发布:服务器坏了 raid 数据 编辑:程序博客网 时间:2024/06/05 07:38
把B排序一遍,然后记忆化搜索一下
用
bitset存一下就好了…
没打过这么暴力的程序
#include <cstdio>#include <iostream>#include <algorithm>#include <vector>#include <cmath>#include <bitset>#include <assert.h>using namespace std;bitset<50*50> vis[55][55][55];bool ap[55][105];class KingdomAndDice{ int n,tot,lim,ss,ans; vector<int> c; void dfs(int x,int y,int k,int cur){ if(abs(2*ans-tot)>abs(2*cur-tot)) ans=cur; else if(abs(2*ans-tot)==abs(2*cur-tot) && ans>cur) ans=cur; if(x>n) return ; if(y>=c.size()) return ; if(c[y]+k>lim) return ; if(vis[x][y][k][cur]) return ; vis[x][y][k][cur]=1; if(y+1!=c.size() && c[y]+k==c[y+1]) return dfs(x,y+1,1,cur); if(y+1<c.size()) dfs(x,y+1,1,cur); if(ap[y][k]){ if(y+1==c.size() || c[y]+k+1<c[y+1]) dfs(x,y,k+1,cur); return ; } if(y+1==c.size() || c[y]+k+1<c[y+1]) dfs(x+1,y,k+1,cur+y); else dfs(x+1,y+1,1,cur+y); }public: double newFairness(vector<int> a,vector<int> b,int x){ int cur=0; tot=a.size()*b.size(); n=0; ans=tot; lim=x; for(int i=0;i<a.size();i++){ if(!a[i]){ n++; continue; } for(int j=0;j<b.size();j++){ if(a[i]>b[j]) cur++; } } b.push_back(0); sort(b.begin(),b.end()); c=b; for(int i=0;i<a.size();i++) for(int j=0;j<b.size();j++) if(a[i]-b[j]>0 && a[i]-b[j]<=50) ap[j][a[i]-b[j]]=1; //for(int i=0;i<b.size();i++) printf("%d ",b[i]); putchar('\n'); dfs(1,0,0,cur); return (double)ans/tot; }};
阅读全文
0 0
- [DP] TopCoder SRM548 Div1 450. KingdomAndDice
- SRM548 Div1Medium KingdomAndDice
- SRM548 Div1Medium KingdomAndDice
- Topcoder SRM548 div2
- Topcoder SRM 662 Div1, ExactTree,DP
- Topcoder SRM666 DIV1第二题,递归+DP
- Topcoder SRM 651 div1 250 题解 (概率dp)
- TopCoder SRM 667 Div1 Problem 250 - OrderOfOperations (状压dp)
- SRM548
- Topcoder.SRM527.Div1.T2
- topcoder SRM500 div1 Level3
- topcoder SRM495 div1 level2
- topcoder SRM495 div1 level3
- Topcoder SRM552 Div1 500
- TopCoder SRM480 DIV1 Practise
- Topcoder--SRM144 div1
- topcoder SRM598 div1
- topcoder srm609 div1
- java中的jdbc
- java中的内存泄漏
- HDU-6249-Alice’s Stamps
- RevitAPI之创建文字和注释【比目鱼原创】
- hdu 5510 KMP+暴力
- [DP] TopCoder SRM548 Div1 450. KingdomAndDice
- 微信公众号插入地图及地图搜索资源的前端处理(坐标系转码,自动定位等业务实现)
- 剑指offer—构建乘积数组
- 服务器端的应用及服务,监控管理
- 关于dp和记忆化搜索
- JDK1.8的新特性之Lambda表达式的应用
- 论文笔记【Local-DPP: An improved DNA-binding protein prediction method by exploring local evolutionary】
- jzoj5498 【清华集训2017模拟12.10】大佬的难题 巧妙容斥
- JAVA---抽象与接口