PAT 1044. Shopping in Mars (25)
2015-01-02 22:09
316 查看
本题基本解决思路是:
从数组前往后搜索遍历,与M进行比较。
关键点在于当结果与M值不相同时,如何取得和M值相同的结果。
需要适当剪枝避免超时。
从数组前往后搜索遍历,与M进行比较。
关键点在于当结果与M值不相同时,如何取得和M值相同的结果。
需要适当剪枝避免超时。
//1044. Shopping in Mars (25) // //本题基本解决思路是: // 从数组前往后搜索遍历,与M进行比较。 // 关键点在于当结果与M值不相同时,如何取得和M值相同的结果。 // 需要适当剪枝避免超时。 #include<iostream> #include <functional> #include <vector> using namespace std; int N, M; int D[100005] = {0}; typedef struct Seg { int s; int e; }Seg; int main() { #ifdef ONLINE_JUDGE #else freopen("D:\\1.txt", "r", stdin); #endif scanf("%d %d", &N, &M); int i; for (i = 0;i<N;i++) { scanf("%d", &D[i]); } i = 0; int j = 0; int CurrTotalD = 0; int MinM = 1<<30; vector<Seg> result; vector<Seg> MinMResult; while(i < N) { if (CurrTotalD < M) { if (j >= N) { break; } CurrTotalD += D[j]; j++; continue; } Seg tmp; tmp.s = i +1; tmp.e = j; if(CurrTotalD == M) { result.push_back(tmp); } else { if (result.size() == 0) { if (MinM > CurrTotalD) { MinM = CurrTotalD; MinMResult.clear(); MinMResult.push_back(tmp); } else if(MinM == CurrTotalD) { MinMResult.push_back(tmp); } } } CurrTotalD -= D[i]; i++; } for (i = 0;i<result.size();i++) { printf("%d-%d\n", result[i].s, result[i].e); } if (result.size() == 0) { for (i = 0;i<MinMResult.size();i++) printf("%d-%d\n", MinMResult[i].s, MinMResult[i].e); } return 0; }
相关文章推荐
- PAT (Advanced Level) 1044. Shopping in Mars (25) 找符合要求的连续子数组,贪心
- 【PAT】1044. Shopping in Mars (25)
- PAT 1044. Shopping in Mars (25) 求区间和,连续序列和
- PAT 甲级 1044. Shopping in Mars (25)
- 【PAT甲级】1044. Shopping in Mars (25)
- PAT甲题题解-1044. Shopping in Mars (25)-水题
- 1044. Shopping in Mars (25) PAT 甲级
- PAT_A 1044. Shopping in Mars (25)
- 【PAT】【Advanced Level】1044. Shopping in Mars (25)
- PAT 1044. Shopping in Mars (25)
- PAT甲级1044. Shopping in Mars (25)
- PAT-1044. Shopping in Mars (25)
- PAT 1044. Shopping in Mars (25)
- PAT (Advanced Level) 1044. Shopping in Mars (25)
- PAT(A) - 1044. Shopping in Mars (25)
- PAT (Advanced) 1044. Shopping in Mars (25)
- PAT 1044. Shopping in Mars (25)
- PAT (Advanced Level) Practise 1044 Shopping in Mars (25)
- PAT 1044 Shopping in Mars(25)
- 【C++】PAT(advanced level)1044. Shopping in Mars (25)