FZU 2086 餐厅点餐(枚举)

///个人感觉vector好看一点

#include<iostream> #include<cstdio> #include<cstring> #include<vector> using namespace std; int tang[12],fan[12],mian[12],hun[12],su[12]; int t,a,b,c,d,e,ml,mr; int solve() { vector<int>v[6]; for(int i = 0; i < 6; i++)v[i].clear(); for(int i = 0; i < d; i++) { for(int j = 0; j < e; j++) { if(hun[i] + su[j] <= mr) v[0].push_back(hun[i] + su[j]); } } for(int i = 0; i < d; i++) { for(int j = 0; j < e; j++) { for(int q = j+1; q < e; q++) { int num = su[j] + su[q]; if(num + hun[i] <= mr) v[1].push_back(num + hun[i]); } } } for(int i = 0; i < d; i++) { for(int j = i+1; j < d; j++) { int num = hun[i] + hun[j]; if(num <= mr) for(int q = 0; q < e; q++) { if(num + su[q] <= mr) v[2].push_back(num + su[q]); } } } for(int i = 0; i < d; i++) { for(int j = i+1; j < d; j++) { int num1 = hun[i] + hun[j]; if(num1 <= mr) for(int q = 0; q < e; q++) { for(int k = q+1; k < e; k++) { int num2 = su[q] + su[k]; if(num1 + num2 <= mr) v[3].push_back(num1+ num2); } } } } for(int i = 0; i < a; i++) { for(int j = 0; j < b; j++) { if(tang[i] + fan[j] <= mr) v[4].push_back(tang[i] + fan[j]); } } for(int i = 0; i < c; i++) { if(mian[i] <= mr) v[5].push_back(mian[i]); } int ans = 0; for(int i = 0; i < 4; i++) { int len = v[i].size(); for(int j = 0; j < len; j++) { int len1 = v[4].size(),len2 = v[5].size(); for(int k = 0; k < len1; k++) { if(v[i][j] + v[4][k] >= ml && v[i][j] + v[4][k] <= mr) ans++; } for(int k = 0; k < len2; k++) { if(v[i][j] + v[5][k] >= ml && v[i][j] + v[5][k] <= mr) ans++; } } } return ans; } int main() { scanf("%d",&t); while(t--) { scanf("%d%d%d%d%d",&a,&b,&c,&d,&e); for(int i = 0; i < a; i++) scanf("%d",&tang[i]); for(int i = 0; i < b; i++) scanf("%d",&fan[i]); for(int i = 0; i < c; i++) scanf("%d",&mian[i]); for(int i = 0; i < d; i++) scanf("%d",&hun[i]); for(int i = 0; i < e; i++) scanf("%d",&su[i]); scanf("%d%d",&ml,&mr); printf("%d ",solve()); } }
原文地址:https://www.cnblogs.com/jifahu/p/5447435.html