zoukankan      html  css  js  c++  java
  • Problem E. Matrix from Arrays

    PS:由于打表姿势没对,错过了很好写的一道题。经过打表你发发现最上角的矩阵,如果是奇数,大小为  L * L,如果为偶数,大小为  2L * 2L,是重复出现。为了便于计算,将循环节的大小统一为 2L * 2L,然后预处理二维前缀和,瞎搞搞就出来了。

    #pragma warning(disable:4996)
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    #include<bitset>
    #include<vector>
    #include<queue>
    #include<map>
    #include<string>
    #include<stack>
    #define ll long long
    #define P pair<int, int>
    #define PP pair<int,pair<int, int>>
    #define pb push_back
    #define pp pop_back
    #define lson root << 1
    #define INF (int)2e9 + 7
    #define rson root << 1 | 1
    #define LINF (unsigned long long int)1e18
    #define mem(arry, in) memset(arry, in, sizeof(arry))
    using namespace std;
    
    int n, T;
    int mp[1005][1005], a[20], dp[100][100];
    
    ll get(int s, int t) {
       if (s == -1 || t == -1) return 0;
    int x = s % n, cnt_x = s / n; int y = t % n, cnt_y = t / n; return 1ll * dp[x][n - 1] * cnt_y + 1ll * dp[n - 1][y] * cnt_x + 1ll * dp[n - 1][n - 1] * cnt_x * cnt_y + 1ll * dp[x][y]; } int main() { scanf("%d", &T); while (T--) { scanf("%d", &n); for (int i = 0; i < n; ++i) scanf("%d", &a[i]); int cur = 0; for (int i = 0; i <= 100 ; ++i) { for (int j = 0; j <= i; ++j) { mp[j][i - j] = a[cur]; cur = (cur + 1) % n; } } dp[0][0] = mp[0][0]; for (int i = 1; i < 2 * n; ++i) dp[0][i] = dp[0][i - 1] + mp[0][i]; for (int i = 1; i < 2 * n; ++i) dp[i][0] = dp[i - 1][0] + mp[i][0]; for (int i = 1; i < 2 * n; ++i) for (int j = 1; j < 2 * n; ++j) dp[i][j] = mp[i][j] + dp[i][j - 1] + dp[i - 1][j] - dp[i - 1][j - 1]; n = 2 * n; int q, x0, y0, x1, y1; scanf("%d", &q); while (q--) { scanf("%d %d %d %d", &x0, &y0, &x1, &y1); //cout << get(x1, y1) << endl; printf("%lld ", get(x1, y1) - get(x1, y0 - 1) - get(x0 - 1, y1) + get(x0 - 1, y0 - 1)); } } return 0; }
  • 相关阅读:
    JS动态计算rem
    Vue数据双向绑定原理
    NOI2019 退役记
    友情链接
    算法博客总结
    总结各类错误(always online)
    学习笔记:powerful number求积性函数前缀和
    LOJ#2409. 「THUPC 2017」小 L 的计算题 / Sum(生成函数)
    多项式简单操作
    LOJ #3103. 「JSOI2019」节日庆典
  • 原文地址:https://www.cnblogs.com/zgglj-com/p/9411583.html
Copyright © 2011-2022 走看看