NC21787. NE的俄罗斯方块
描述
输入描述
第一行为正整数M表示使用的测试组数M <= 10
接下来M组游戏局面:
每组第一行输入一个正整数N表示含有砖块的列的数量N <= 100000
接下来一行为N个正整数hi表示第i 个非零列的高度 hi <= 2 20 $
输出描述
输出M行
每行一个整数,表示启动消除器后的有效操作次数
示例1
输入:
2 2 5 1 3 1 2 3
输出:
2 2
C++11(clang++ 3.9) 解法, 执行用时: 487ms, 内存消耗: 6008K, 提交时间: 2018-12-26 20:59:54
#include<iostream> using namespace std; int main() { int m, n; long long a, b; cin >> m; while(m--) { b = 0; cin >> n; for (int i = 0; i < n; i++) { cin >> a; b |= a; } cout << __builtin_popcount(b) << endl; } }
C++14(g++5.4) 解法, 执行用时: 373ms, 内存消耗: 6120K, 提交时间: 2019-02-16 12:23:37
#include<iostream> using namespace std; int main() { int m, n; long long a, b; cin >> m; while(m--) { b = 0; cin >> n; for (int i = 0; i < n; i++) { cin >> a; b |= a; } cout << __builtin_popcount(b) << endl; } }