标签:style blog http color os io for 2014
题意:给你无穷多个1-10的,从 1-m不停的放到天平两端,两次连续放置要在不同的天平和放不同的重量,使得每一次放置这边的天平都比对面的重量多。
解题思路:
1)暴搜,如果估算的话还是过不了的,但实际情况比估算好太多了 62ms
1 // File Name: 339c.cpp 2 // Author: darkdream 3 // Created Time: 2014年08月03日 星期日 16时38分23秒 4 5 #include<vector> 6 #include<list> 7 #include<map> 8 #include<set> 9 #include<deque> 10 #include<stack> 11 #include<bitset> 12 #include<algorithm> 13 #include<functional> 14 #include<numeric> 15 #include<utility> 16 #include<sstream> 17 #include<iostream> 18 #include<iomanip> 19 #include<cstdio> 20 #include<cmath> 21 #include<cstdlib> 22 #include<cstring> 23 #include<ctime> 24 #define LL long long 25 26 using namespace std; 27 int ans[1004]; 28 int num = 0 ; 29 int b[30]; 30 int lb = 0; 31 int m; 32 int dfs(int num ,int last ,int k) 33 { 34 if(k == m + 1) 35 return 1 ; 36 for(int i = 1;i <= lb ;i ++) 37 { 38 if(b[i] > num && b[i] != last) 39 { 40 if(dfs(b[i]-num,b[i],k+1)) 41 { 42 ans[k] = b[i]; 43 return 1; 44 } 45 } 46 } 47 return 0 ; 48 } 49 int main(){ 50 char str[14]; 51 scanf("%s",str); 52 scanf("%d",&m); 53 int len = strlen(str); 54 for(int i = 0;i < len; i ++) 55 { 56 if(str[i] == ‘1‘) 57 { 58 lb ++ ; 59 b[lb] = i+1 ; 60 } 61 } 62 if(dfs(0,0,1)) 63 { 64 printf("YES\n") ; 65 for(int i =1 ;i <= m;i ++) 66 printf("%d ",ans[i]); 67 }else{ 68 printf("NO\n"); 69 } 70 return 0; 71 }
2)DP
dp[i][j][k],基本上和暴搜类似,但是去除了重复的情况,代码吃完饭回来再写QAQ
codeforces339C - Xenia and Weights 暴搜,布布扣,bubuko.com
codeforces339C - Xenia and Weights 暴搜
标签:style blog http color os io for 2014
原文地址:http://www.cnblogs.com/zyue/p/3888589.html