首页 > 其他分享 >CodeForces - 835C Star sky

CodeForces - 835C Star sky

时间:2023-01-08 18:34:44浏览次数:54  
标签:pre std Star int ll 835C sky 亮度 const

CodeForces - 835C Star sky

题解:二维前缀和

二维平面上给你点和坐标,让你求总亮度,很容易想到二维前缀和,但是题目很抽象,又给了你一个时间,就是说,每过一个单位时间,它的亮度会有改变,这该怎么办?

实际上,我们观察发现,一开始初始亮度一样的点,在经历时间t后亮度还是保持一样,所以我们只需要去求出不同初始亮度下每个初始亮度对应的星星的数量,因为\(1<=c<=10\),所以我们考虑开一个三维数组,\(g[i][j][k]\),第一维代表初始亮度,后面两位代表坐标,然后在询问前先二维前缀和初始化,求出不同亮度的星星对应的数量,在询问时遍历一遍c,其实数量级也就2e6左右

#include <bits/stdc++.h>
#define Zeoy std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0)
#define all(x) (x).begin(), (x).end()
#define endl '\n'
using namespace std;
typedef pair<int, int> pii;
typedef long long ll;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3f;
const int mod = 1e9 + 7;
const double eps = 1e-9;
const int N = 2e5 + 10;
ll pre[15][110][110];
int n, q, c;
void pre_slove()
{
    for (int k = 0; k <= c; ++k)
    {
        for (int i = 1; i <= 105; ++i)
        {
            for (int j = 1; j <= 105; ++j)
            {
                pre[k][i][j] = pre[k][i][j] + pre[k][i][j - 1] + pre[k][i - 1][j] - pre[k][i - 1][j - 1];
            }
        }
    }
}
int main(void)
{
    Zeoy;
    int T = 1;
    // cin >> t;
    while (T--)
    {
        cin >> n >> q >> c;
        for (int i = 1; i <= n; ++i)
        {
            int x, y, v;
            cin >> x >> y >> v;
            pre[v][x][y]++;
        }
        pre_slove();
        while (q--)
        {
            int t, x1, y1, x2, y2;
            cin >> t >> x1 >> y1 >> x2 >> y2;
            ll ans = 0L;
            for (int i = 0; i <= c; ++i)
            {
                int val = (t + i) % (c + 1);
                ll num = pre[i][x2][y2] - pre[i][x2][y1 - 1] - pre[i][x1 - 1][y2] + pre[i][x1 - 1][y1 - 1];
                ans += val * num;
            }
            cout << ans << endl;
        }
    }
    return 0;
}

标签:pre,std,Star,int,ll,835C,sky,亮度,const
From: https://www.cnblogs.com/Zeoy-kkk/p/17035059.html

相关文章

  • 重大新闻!Mozilla 将封杀沃通和 StartSSL 一年内新签发的所有证书
    Firefox浏览器背后的Mozilla基金会正在考虑对沃通(WoSign)及被其秘密收购的StartCom(著名的StartSSL即其旗下产品)这两个CA一年内新签发的所有SSL证书进行封杀。......
  • 分布式链路追踪-skywalking入门体验
    背景旁友,你的线上服务是不是偶尔来个超时,或者突然抖动一下,造成用户一堆反馈投诉。然后你费了九牛二虎之力,查了一圈圈代码和日志才总算定位到问题原因了。或者公司内部有链路......
  • Vue:TDesign Starter 自定义指令控制权限
    Vue支持自定义指令,具体API说明可以参考下面两个文档:Vue.directive(id,[definition])Vue自定义指令1.钩子函数Vue.directive提供了几个钩子函数,分别是:bindi......
  • netcore添加skywalking链式追踪
    简介  在分布式系统当中,想要监控服务与服务之间调用耗时,或者是查问题的时候,不能像向单机那种形式去查询.查找了一段时间发现目前市场上用的是skywalking,由华为大佬......
  • Thread 之 start() 方法
    案例代码@Slf4jpublicclassClient{publicstaticvoidmain(String[]args){Threadt1=newThread("t1"){@Overridepu......
  • Starling GodRay 效果实现
    ​​Starling‘GodRay’Filter​​Whilecruisingtheinternettodaylookingforinterestingthingstotryout,Iranacrossthisfunlittle​​GPUGem​​​......
  • Starling常见问题解决办法
    ​​Starling常见问题解决办法​​来自:​​智慧+毅力=无所不能​​ 1、Android设备上阻止用户按下后退后的行为侦听按键事件//阻止后退行为view.stage.addEventL......
  • Starling浅尝
      starling笔记:基于Stage3Dg开发出来的一个可以使用GPU加速2D应用程序的框架。是一个渲染框架!特色:直观,轻量,免费。Starling与Sparrow框架很相近。驱动关系:GPU-->OpenGL/E......
  • Oracle的start with connect by prior
    oracle的startwithconnectbyprior是根据条件递归查询"树",分为四种使用情况:第一种:查询结果自己所有的后代节点(包括自己)startwith子节点ID='...'connectbyprior......
  • A child container failed during start
    解决方法:pom.xml文件中javax.servlet-api坐标中缺少了scope,加载就可以了<dependency><groupId>org.springframework</groupId><artifactId>spring-web......