SRM553

来源:互联网 发布:聚游网络dnf登陆器 编辑:程序博客网 时间:2024/06/05 03:26

1.PlatypusDuckAndBeaver

#include<iostream>using namespace std;class PlatypusDuckAndBeaver{public:int minimumAnimals(int webbedFeet, int duckBills, int beaverTails){return webbedFeet/2-beaverTails;}};

 

2.Suminator

#include<iostream>#include<stack>#include<vector>#include<algorithm>using namespace std;typedef long long ll;class Suminator{public:int suminator(vector <int> program, int pos, int val) {stack<ll> stk;program[pos] = val;int ps = program.size();for(int i = 0; i < ps; i++) {if(program[i] != 0) {stk.push(program[i]);}else {ll sum = 0;for(int j = 0; j < 2 && !stk.empty(); j++) {sum += stk.top();stk.pop();}stk.push(sum);}}return stk.top();}int findMissing(vector <int> program, int wantedResult){int pos = find(program.begin(), program.end(), -1) - program.begin();if(suminator(program, pos, 0) == wantedResult) {return 0;}ll res = suminator(program, pos, 0);ll ans = wantedResult - res;if(ans <= 0)return -1;int temp = suminator(program, pos, ans);if(temp = wantedResult)return ans;else return -1;}};

 

3.SafeRemoval

#include<iostream>#include<algorithm>#include<vector>#include<functional>using namespace std;class SafeRemoval {public:int removeThem(vector <int> seq, int k) {int f[55][55][55][55];int a[4][55];int b[4][55];int i;int n = seq.size();sort(seq.begin(),seq.end(),greater <int> ());for( i = 0; i < 3; i++) {a[i][0] = b[i][0] =0;}for( i = 0; i < n; i++) {int mod = seq[i] % 4;a[mod][++a[mod][0]] = seq[i];b[mod][a[mod][0]] = seq[i] + b[mod][a[mod][0] - 1];}for(int i0 = 0; i <= a[i0][0]; i++)for(int i1 = 0; i <=a[1][0]; i++)for(int i2 = 0; i <=a[2][0]; i++)for(int i3 = 0; i <=a[3][0]; i++){if(i0 + i1 + i2 + i3 >= n - k) {if(i0 + i1 + i2 + i3 == n - k) {f[i0][i1][i2][i3] = b[0][i0] + b[1][i1] + b[2][i2] + b[3][i3];if ((f[i0][i1][i2][i3] % 4) == 0) f[i0][i1][i2][i3] = -1;}else {f[i0][i1][i2][i3] = -1;if (((b[0][i0] + b[1][i1] + b[2][i2] + b[3][i3]) % 4) != 0) {if (i0 > 0 && f[i0][i1][i2][i3] < f[i0 - 1][i1][i2][i3]) f[i0][i1][i2][i3] = f[i0 - 1][i1][i2][i3];if (i1 > 0 && f[i0][i1][i2][i3] < f[i0][i1 - 1][i2][i3]) f[i0][i1][i2][i3] = f[i0][i1 - 1][i2][i3];if (i2 > 0 && f[i0][i1][i2][i3] < f[i0][i1][i2 - 1][i3]) f[i0][i1][i2][i3] = f[i0][i1][i2 - 1][i3];if (i3 > 0 && f[i0][i1][i2][i3] < f[i0][i1][i2][i3 - 1]) f[i0][i1][i2][i3] = f[i0][i1][i2][i3 - 1];}}}}return f[ a[0][0] ][ a[1][0] ][ a[2][0] ][ a[3][0] ];}};



 

原创粉丝点击