USACO 4.1 Fence Rails
2011-08-12 13:39
363 查看
TASK: fence8 LANG: C++ Compiling... Compile: OK Executing... Test 1: TEST OK [0.000 secs, 3032 KB] Test 2: TEST OK [0.000 secs, 3032 KB] Test 3: TEST OK [0.000 secs, 3032 KB] Test 4: TEST OK [0.000 secs, 3032 KB] Test 5: TEST OK [0.000 secs, 3032 KB] Test 6: TEST OK [0.027 secs, 3032 KB] Test 7: TEST OK [0.000 secs, 3032 KB] Test 8: TEST OK [0.000 secs, 3032 KB] Test 9: TEST OK [0.000 secs, 3032 KB] Test 10: TEST OK [0.000 secs, 3032 KB] Test 11: TEST OK [0.000 secs, 3032 KB] Test 12: TEST OK [0.000 secs, 3032 KB] All tests OK.
/* ID: jiafeim1 LANG: C++ TASK: fence8 */ #include<stdio.h> #include<algorithm> using namespace std; int n,r,m; int orig[52],target[1055]; int prett[1055]; int total=0; int tempOrig[52]; int mid; int minTarget; int space; bool doit(int targetpos,int origpos) { if(targetpos<=0) return true; if(space + prett[mid]>total) return false; for(int i = origpos ;i<=n;++i) if(target[targetpos]<=tempOrig[i]) { tempOrig[i]-=target[targetpos]; if(tempOrig[i]<minTarget) space += tempOrig[i]; if(target[targetpos]==target[targetpos-1]) { if(doit(targetpos-1,i)) return true; } else if(doit(targetpos-1,1)) return true; if(tempOrig[i]<minTarget) space -= tempOrig[i]; tempOrig[i]+=target[targetpos]; } return false; } int main() { FILE *fin,*fout; fin = fopen("fence8.in","r"); fout = fopen("fence8.out","w"); fscanf(fin,"%d",&n); for(int i = 1;i<=n;++i) { fscanf(fin,"%d",orig+i); total+=orig[i]; } fscanf(fin,"%d",&m); for(int i = 1;i<=m;++i) { fscanf(fin,"%d",target+i); } sort(orig+1,orig+n+1); sort(target+1,target+m+1); minTarget = target[1]; orig[0]=prett[0]=target[0]=0; for(int i = 1;i<=m;++i) { prett[i] += prett[i-1]+target[i]; } while(prett[m]>total) --m; int left=0,right=m; mid = (left+right)/2; while(left<=right) { space = 0; for(int i = 1;i<=n;++i) tempOrig[i] = orig[i]; if(doit(mid,1)) { left = mid + 1; mid = (right+left)/2; } else { right = mid - 1; mid = (right +left)/2; } } fprintf(fout,"%d\n",mid); fclose(fin); fclose(fout); return 0; }
相关文章推荐
- USACO 4.1 Fence Rails (fence8)
- USACO 4.1 Fence Rails
- USACO Section 4.1 Fence Rails
- USACO Section 4.1 Fence Rails(DFSID)
- USACO 4.1 Fence rails(迭代加深DFS+二分)
- usaco 4.1 Fence Rails
- usaco 4.1 Fence Rails 剪枝
- usaco 4.1 Fence Loops 最小环
- 洛谷P2737 [USACO4.1]麦香牛块Beef McNuggets
- USACO 4.1 Fence loop
- USACO Section 4.1 Beef McNuggets(数论 & 背包)
- usaco 4.1 Cryptcowgraphy 剪枝
- USACO 4.1 Fence Loops (fence6)
- Fence Loops USACO 4.1(dfs找环阵亡)
- Section 4.1 Fence Rails
- USACO 4.1 Fence Loops
- [USACO 6.3.1] Fence Rails
- Section 4.1 Fence Rails(DFS_ID迭代加深搜索+剪枝)
- USACO 4.1解题报告
- [USACO4.1]麦香牛块Beef McNuggets