1 条题解
-
0
C++ :
#include<cstdio> #include<cstring> #include<string> #include<iostream> #include<algorithm> using namespace std; #define lowbit(i) ((i)&(-i)) const int maxn = 1000; int n; int c[maxn]; int A[maxn]; void update(int x, int v,int maxNum) { for(int i = x; i <= maxNum; i += lowbit(i)) { c[i] += v; } } int getSum(int x) { int sum = 0; for(int i = x; i > 0; i -= lowbit(i)) { sum += c[i]; } return sum; } int strToNum(string s, int &maxNum) { int num = 0; int temp = 0; for(int i = 0; i < s.size(); i++) { if(s[i] >= '0' && s[i] <= '9') { temp = temp * 10 + s[i] - '0'; } else { A[num++] = temp; if(maxNum < temp) { maxNum = temp; } temp = 0; } } A[num++] = temp; if(maxNum < temp) { maxNum = temp; } return num; } int main() { string s; while(getline(cin, s)) { memset(c, 0, sizeof(c)); memset(A, 0, sizeof(A)); int maxNum = 0; int num = strToNum(s, maxNum); long long sum = 0; for(int i = 0; i < num; i++) { update(A[i], 1,maxNum); sum += getSum(maxNum) - getSum(A[i]); } printf("%lld\n", sum); } return 0; }
- 1
信息
- ID
- 1187
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者