【noip题目代码】魔法阵;模拟,iterator,
2017-05-29 20:43
113 查看
#include<vector> #include<math.h> #include<iostream> #include<algorithm> using namespace std; #define MAXSIZE 15001 //1000000000 struct node{ int A = 0; int B = 0; int C = 0; int D = 0; int L = 0; int book = 0; }; std::vector<node> v; std::vector<node> vAns; std::vector<int> inArr; node nodeArr[MAXSIZE]; // TODO int arr[MAXSIZE] = { 0 }; int ans[5][MAXSIZE] = { 0 }; int main() { int n = 0, m = 0; int x = 0; int A = 0, B = 0, C = 0, D = 0; cin >> n >> m; for (int i = 1; i <= m; i++) { cin >> x; arr[x] += 1; inArr.push_back(x); nodeArr[x].book = 1; } for (int L = 1; L < n; L++) { for (int i = 0; i < MAXSIZE; i++) { if (arr[i] >= 1)// 假设当前的点是A { A = i; if (arr[A + 2 * L] >= 1)// B存在 { B = A + 2 * L; node temp; temp.A = A; temp.B = B; temp.L = L; v.push_back(temp); } } } } for (int i = 0; i < v.size(); i++) { for (int j = 1; j < n; j++)// TODO { if (v[i].B + 6 * v[i].L + j < n && arr[v[i].B + 6 * v[i].L + j] >= 1)// 找到ABCD成立的情况 { v[i].C = v[i].B + 6 * v[i].L + j; if (v[i].B + 6 * v[i].L + j < n && arr[v[i].L + v[i].C] >= 1) { v[i].D = v[i].L + v[i].C; vAns.push_back(v[i]); nodeArr[v[i].A].A += 1; nodeArr[v[i].B].B += 1; nodeArr[v[i].C].C += 1; nodeArr[v[i].D].D += 1; if (arr[v[i].A] > 1 || arr[v[i].B] > 1 || arr[v[i].C] > 1 || arr[v[i].D] > 1) { int temp1 = max(arr[v[i].A], arr[v[i].B]); int temp2 = max(arr[v[i].C], arr[v[i].D]); temp1 = max(temp1, temp2); nodeArr[v[i].A].A *= temp1; nodeArr[v[i].B].B *= temp1; nodeArr[v[i].C].C *= temp1; nodeArr[v[i].D].D *= temp1; } /*ans[1][v[i].A] += 1; ans[2][v[i].B] += 1; ans[3][v[i].C] += 1; ans[4][v[i].D] += 1;*/ } } } } //for (int i = 0; i < MAXSIZE; i++) //{ // if (arr[i] > 1) // { // vAns // } //} for (int i = 0; i < inArr.size(); i++) { if (nodeArr[inArr[i]].book >= 1) { //if (arr[inArr[i]]>=) cout << nodeArr[inArr[i]].A << " " << nodeArr[inArr[i]].B << " " << nodeArr[inArr[i]].C << " " << nodeArr[inArr[i]].D << endl; } } return 0; }
相关文章推荐
- 【noip题目代码】海港;模拟,iterator,memset(TLE)
- 【noip题目代码】回文日期;vetor,模拟,iterator
- 【NOIP2013模拟联考5】军训(training) 题解+代码
- 【NOIP2016提高A组模拟7.15】颜料大乱斗 题解+代码
- [NOIP模拟]抄代码
- 【NOIP2013模拟】Vani和Cl2捉迷藏 题解&代码
- NOIP2016 普及组 总结+题目吐槽+代码+简单题解
- 【NOIP2016提高A组模拟7.15】修路 题解+代码
- Orz教主第五次模拟(做题情况+题目分析+代码)[未完]
- 【用膝盖写代码系列】(2):NOIP2011普及组复赛题目详解
- 【noip题目代码】其实DFS和动态规划是亲兄弟
- 2016.08.18【初中部 NOIP普及组 】模拟赛题目
- NOIP2013模拟】DY引擎 题解+代码
- ◆竞赛题目◆◇NOIP2016普及组◇ 魔法阵
- 【NOIP2013模拟】Freda的传呼机 题解+代码
- 【NOIP2013模拟】粉刷匠 题解&代码
- 【用膝盖写代码系列】(3):NOIP2012普及组题目详解
- 2016.08.19上午【初中部 NOIP普及组 】模拟赛题目
- 【noip题目代码】买铅笔;ceil向上取整,隐式浮点数,pause
- 【NOIP2013模拟】归途与征程 题解+代码