1057.Stack (30)...to be continued...
2017-02-27 23:10
323 查看
1057.Stack (30)…to be continued…
pat-al-1057
2017-02-27
栈
分块查找的思想
-TBC-
pat-al-1057
2017-02-27
栈
分块查找的思想
/** * pat-al-1057 * 2017-02-27 * Cpp version * Author: fengLian_s */ #include<stdio.h> #include<stack> #include<string.h> #define MAX 100010 #define sqrN 316 using namespace std; stack<int> st; int block[sqrN]; int table[MAX]; void Push(int num) { st.push(num); table[num]++; block[num/sqrN]++; } void Pop() { int num = st.top(); st.pop(); table[num]--; block[num/sqrN]--; printf("%d\n", num); } void peekMedian(int k) { int sum = 0, index = 0; while(sum + block[index] < k) { sum += block[index++]; } int num = index * sqrN; while(sum + table[num] < k) { sum += table[num++]; } printf("%d\n", num); } int main() { memset(block, 0, sizeof(block)); memset(table, 0, sizeof(table)); freopen("in.txt", "r", stdin); int n; scanf("%d", &n); char cmd[20]; int num; for(int i = 0;i < n;i++) { scanf("%s", cmd); if(strcmp(cmd, "Push") == 0) { scanf("%d", &num); Push(num); } else if(strcmp(cmd, "Pop") == 0) { if(st.empty()) printf("Invalid\n"); else Pop(); } else//peekMedian { if(st.empty()) printf("Invalid\n"); else { int k = (st.size() + 1) / 2; peekMedian(k); } } } return 0; }
-TBC-
相关文章推荐
- 1107.Social Clusters (30)...to be continued...
- 1049.Counting Ones (30)...to be continued...
- 1026.Table Tennis (30)...to be continued...
- 1053.Path of Equal Weight (30)...to be continued...
- 1091.Acute Stroke (30)...to be continued...
- 1103.Integer Factorization (30)...to be continued...
- 1014.Waiting in Line (30)...to be continued...
- 1022.Digital Library (30)...to be continued...
- 1095.Cars on Campus (30)...to be continued...
- 1064.Complete Binary Search Tree (30)...to be continued...
- 1099.Build A Binary Search Tree (30)...to be continued...
- 【期刊&&会议】机器学习&&深度学习 + 计算机视觉(To be continued..)
- To setup Ubuntu17.10(to be continued)
- 建立自己的代码大全 ......to be continued
- [置顶] 各种注意事项集合(to be continued)
- 各种方法......to be continued
- LeetCode Summary - JAVA Version - LinkedList (To be continued)
- 交叉编译 systemd(to be continued)
- 散装笔记 ...to be continued
- TI官方两相LLC交错并联程序的几个关键点(to be continued)