计蒜客天上的星星

2024-02-29 23:30
文章标签 星星 计蒜客 天上

本文主要是介绍计蒜客天上的星星,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目链接:点击打开链接

在一个星光摧残的夜晚,蒜头君一颗一颗的数这天上的星星。

蒜头君给在天上巧妙的画了一个直角坐标系,让所有的星星都分布在第一象。天上有 nn 颗星星,他能知道每一颗星星的坐标和亮度。

现在,蒜头君问自己 qq 次,每次他问自己每个矩形区域的星星的亮度和是多少(包含边界上的星星)。

输入格式

第一行输入一个整数 n(1 \le n \le 50000)n(1n50000) 表示星星的数量。

接下里 nn 行,每行输入三个整数 x,y,w(0 \le x, y, w\le 2000)x,y,w(0x,y,w2000),表示在坐标 (x,y)(x,y) 有一颗亮度为 ww 的星星。注意一个点可能有多个星星。

接下来一行输入一个整数 q(1 \le q \le 50000)q(1q50000),表示查询的次数。

接下来 qq 行,每行输入四个整数 x_1, y_1, x_2, y_2x1,y1,x2,y2,其中 (x_1, y_1)(x1,y1) 表示查询的矩形的左下角的坐标,(x_2, y_2)(x2,y2) 表示查询的矩形的右上角的坐标,0 \le x_1 \le x_2 \le 20000x1x220000 \le y_1 \le y_2 \le 20000y1y22000

输出格式

对于每一次查询,输出一行一个整数,表示查询的矩形区域内的星星的亮度总和。

样例输入
5
5 0 6
7 9 7
8 6 13
9 7 1
3 0 19
4
0 8 7 9
0 0 7 10
2 7 10 9
5 4 7 5
样例输出
7
32
8
0
#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
int a[2010][2010];
int map[2010][2010];
int main()
{int i,j,q,n,x1,x2,y1,y2,x,y,w;scanf("%d",&n);memset(map,0,sizeof(map));for(i=0;i<n;i++){scanf("%d %d %d",&x,&y,&w);map[x+1][y+1]+=w;}memset(a,0,sizeof(a));for(i=1;i<=2001;i++)for(j=1;j<=2001;j++)a[i][j]=a[i-1][j]+a[i][j-1]-a[i-1][j-1]+map[i][j];scanf("%d",&q);while(q--){scanf("%d%d%d%d",&x1,&y1,&x2,&y2);x1++;x2++;y1++;y2++;printf("%d\n",a[x2][y2]-a[x1-1][y2]-a[x2][y1-1]+a[x1-1][y1-1]);}return 0;
}




这篇关于计蒜客天上的星星的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/760454

相关文章

计蒜客 Skiing 最长路

In this winter holiday, Bob has a plan for skiing at the mountain resort. This ski resort has MM different ski paths and NN different flags situated at those turning points. The ii-th path from the

计蒜客 Half-consecutive Numbers 暴力打表找规律

The numbers 11, 33, 66, 1010, 1515, 2121, 2828, 3636, 4545 and t_i=\frac{1}{2}i(i+1)t​i​​=​2​​1​​i(i+1), are called half-consecutive. For given NN, find the smallest rr which is no smaller than NN

宇宙星星转动特效带背景音乐引导页源码

源码介绍 宇宙星星转动特效带背景音乐引导页源码,源码由HTML+CSS+JS组成,记事本打开源码文件可以进行内容文字之类的修改,双击html文件可以本地运行效果,也可以上传到服务器里面,重定向这个界面 效果预览 源码获取 宇宙星星转动特效带背景音乐引导页源码

官方摘星星游戏

需求 通过控制游戏主角(小怪物)跳跃,来触碰到随机生成的星星,如果在星星消失前触碰到,那么则积分+1,否则游戏结束。 实现 大致步骤 1、构建静态页面 2、往UI节点上添加自定义脚本组件(JS或TS编写的满足CocosCreator组件要求的脚本组件) 实现细节 静态页面 拖资源进场景就完事了 脚本组件 1、主角脚本组件(Player) (1)主角要能动吧,cc.tween()

吃星星(1.5)

吃星星1.5版导航 ★★★★★ 吃星星(1.5)★★★★★ ★★★★该版本简介+更新说明★★★★ ★★★分部代码★★★ ★头文件+命名空间+变量★ ★★结构体★★ ★辅助结构体★ ★角色结构体★ ★星星结构体★ ★打印结构体★ ★加载中结构体★ ★游戏结构体★ ★★副函数★★ ★函数声明★ ★开始函数★ ★输入函数★ ★单人初始化函数★ ★双人初始化函数★ ★游

【rmzt】摘星星xp主题

当前位置: 热门主题  >  XP主题下载 摘星星电脑桌面壁纸下载《鼠标右键另存为本地》 摘星星电脑桌面主界面效果图 摘星星电脑桌面开始菜单效果图 摘星星电脑桌面图标效果图   摘星星电脑鼠标效果图 摘星星主题内容:摘星星电脑桌面壁纸下载《鼠标右键另存为本地》 摘星星电脑桌面主界面效果图 摘星星电脑桌面开始菜单效果图 摘星星电脑桌面图标效果图   摘星

让星星⭐月亮告诉你,分享开始读源码的感受,望共勉

这段时间,一直在钻HashMap的源码,越读到后面,心里越觉得有什么想要说的,下面通过HashMap的扩容方法引出我想分享的一些思考和感受。 HashMap的resize扩容方法,最迷人之处在于其巧妙的运用了核心算法:e.hash&oldCap,据此算法将旧数组中的数据很有效的转移到了新数组的对应索引位置上。好像越来越意识算法的至关重要,而且更厉害的是,可以将数学公式恰到好处地运用在亟需它的场景里

让星星⭐月亮告诉你,HashMap在put数据时是如何找到要存放的位置的?

⭐⭐⭐初印象🌙🌙🌙: 初识HashMap时,知道HashMap是用来存放Key-Value这样的键值对的,也知道HashMap的底层数据结构是:数组+链表+红黑树,且数组长度为2的x次幂。 ⭐⭐⭐疑问🌙🌙🌙: 那么往HashMap中添加键值对时,是什么决定了键值对的存放位置呢?即存放位置是如何计算出来的呢?相同的疑问可能还会以下面的问题描述方式提出来: 其他描述方式: 1.向Ha

让星星⭐月亮告诉你,HashMap的resize()即扩容方法源码解读(已重新完善,如有不足之处,欢迎指正~)

分析HashMap的resize()即扩容方法的源码,会发现主要分两部分操作: 为创建新数组初始化新数组容量和新数组扩容阈值;创建新数组后,需将数据从旧数组转移到新数组上来,旧数组上的数据会根据(e.hash & oldCap) 是否等于0,重新rehash计算其在新数组上的索引位置,分成2类: ① 等于0时,则将该头节点放到新数组时的索引位置等于其在旧数组时的索引位置,记未低位区链表lo开头-

让星星⭐月亮告诉你,原码、反码、补码以及为什么要用反码和补码

转载自: cumtchw When you learn a knowledge, you must reach the level that you can use it proficiently, not just know it or be familiar with it https://www.cnblogs.com/cumtchw/p/4523332.html ⭐⭐⭐机器数🌙🌙🌙