Star sky -每天一把CF - 20201028

2023-11-04 03:40
文章标签 每天 一把 cf star sky 20201028

本文主要是介绍Star sky -每天一把CF - 20201028,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2020-10-28

dp

835C 1600

题目

原题链接:https://codeforces.com/problemset/problem/835/C

在这里插入图片描述

思路

题目大意:一个无限大的矩阵中随机散布着一些星星,这些星星有自己独特的初始亮度以及统一的最大亮度,每过一秒星星亮度就会增加1,当星星亮度超过最大亮度时就再次从0开始计数,问t时刻时某个给定的小矩阵内的星星总的亮度时多少。

思路:二维差分,去统计从1,1到x,y的矩阵中各种亮度的灯各有多少,然后用二维差分计算要求的小矩阵中各种亮度的星星有多少,然后就是数量*((亮度+时间)%最大亮度)。

一开始脑子抽了,没看x,y的取值范围只是1-100,以为是随机分布在一个1e5*1e5的矩阵中,不能拿二维数组去存星星,自己还去拿结构体存,还用到原点的距离进行排序,以减少查询时的复杂度。结果测试10直接n=q=1e5,当场TLE。。。。

搞到最后才知道把x,y范围看错了.吐了。

代码实现

TLE款

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <queue>using namespace std;#define mes0(c) memset((c),0,sizeof(c))typedef long long ll;
typedef struct {int x, y, l;
}node;const int MAX = 1e5 + 5;
const ll inf = 1e15;ll n, q, c1;
node st[MAX];
ll a, b, c, d, e;bool cmp(node a, node b) {return a.x * a.x + a.y * a.y < b.x * b.x + b.y * b.y;
}int main() {ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);while (cin >> n >> q >> c1) {mes0(st);c1++;for (int i = 1; i <= n; i++)cin >> st[i].x >> st[i].y >> st[i].l;sort(st + 1, st + 1 + n, cmp);while (q--) {cin >> a >> b >> c >> d >> e;ll ans = 0;ll tpx, tpy, tpl;for (int i = 1; i <= n; i++) {tpx = st[i].x, tpy = st[i].y, tpl = st[i].l;if (tpx > d && tpy > e) break;if (tpx >= b && tpx <= d && tpy >= c && tpy <= e)ans += (tpl + a) % c1;}cout << ans << endl;}}return 0;
}

AC

#include <iostream>
using namespace std;const int N = (int)1e5 + 123;
const int C = 101;
const int P = 11;int n, q, c;
int cnt[P][C][C];int main() {cin >> n >> q >> c;for (int i = 0; i < n; i++) {int x, y, s;cin>>x>>y>>s;cnt[s][x][y]++;}for (int p = 0; p <= c; p++) {for (int i = 1; i < C; i++) {for (int j = 1; j < C; j++) {cnt[p][i][j] += cnt[p][i - 1][j] + cnt[p][i][j - 1] - cnt[p][i - 1][j - 1];}}}for (int i = 0; i < q; i++) {int t, x1, y1, x2, y2;cin >> t >> x1 >> y1 >> x2 >> y2;int ans = 0;for (int p = 0; p <= c; p++) {int brightness = (p + t) % (c + 1);int amount = cnt[p][x2][y2] - cnt[p][x1 - 1][y2] - cnt[p][x2][y1 - 1] + cnt[p][x1 - 1][y1 - 1];ans += brightness * amount;}cout << ans << "\n";}return 0;
}

这篇关于Star sky -每天一把CF - 20201028的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

cf 164 C 费用流

给你n个任务,k个机器,n个任务的起始时间,持续时间,完成任务的获利 每个机器可以完成任何一项任务,但是同一时刻只能完成一项任务,一旦某台机器在完成某项任务时,直到任务结束,这台机器都不能去做其他任务 最后问你当获利最大时,应该安排那些机器工作,即输出方案 具体建图方法: 新建源汇S T‘ 对任务按照起始时间s按升序排序 拆点: u 向 u'连一条边 容量为 1 费用为 -c,

CF 508C

点击打开链接 import java.util.Arrays;import java.util.Scanner;public class Main {public static void main(String [] args){new Solve().run() ;} }class Solve{int bit[] = new int[608] ;int l

Python QT实现A-star寻路算法

目录 1、界面使用方法 2、注意事项 3、补充说明 用Qt5搭建一个图形化测试寻路算法的测试环境。 1、界面使用方法 设定起点: 鼠标左键双击,设定红色的起点。左键双击设定起点,用红色标记。 设定终点: 鼠标右键双击,设定蓝色的终点。右键双击设定终点,用蓝色标记。 设置障碍点: 鼠标左键或者右键按着不放,拖动可以设置黑色的障碍点。按住左键或右键并拖动,设置一系列黑色障碍点

每天一道面试题(2):fail-safe 机制与 fail-fast 机制分别有什么作用?

当谈论Java集合的 fail-fast 和 fail-safe 机制时,涉及的是在集合被并发修改时的行为和处理方式。这些机制对保证程序的正确性和稳定性非常重要,尤其是在多线程环境中。 1. Fail-Fast 机制 定义: Fail-fast 机制的核心是在检测到集合在遍历过程中被修改时,立即抛出 ConcurrentModificationException 异常,从而中断迭代操作。这种

【CF】C. Glass Carving(二分 + 树状数组 + 优先队列 + 数组计数)

这题简直蛋疼死。。。。。 A了一下午 #include<cstdio>#include<queue>#include<cstring>#include<algorithm>using namespace std;typedef long long LL;const int maxn = 200005;int h,w,n;int C1[maxn],C2[maxn];int

【CF】E. Anya and Cubes(双向DFS)

根据题意的话每次递归分3种情况 一共最多25个数,时间复杂度为3^25,太大了 我们可以分2次求解第一次求一半的结果,也就是25/2 = 12,记录结果 之后利用剩余的一半求结果 s-结果 = 之前记录过的结果 就可以 时间复杂度降低为 3 ^ (n/2+1) 题目链接:http://codeforces.com/contest/525/problem/E #include<set

【CF】D. Arthur and Walls(BFS + 贪心)

D题 解题思路就是每次检查2X2的方格里是否只有一个‘*’,如果有的话这个*就需要变成‘.’,利用BFS进行遍历,入队的要求是这个点为. 一开始将所有的'.'全部加入队列,如果碰到一个'*'变成'.'就入队,判断的时候从4个方向就行判断 题目链接:http://codeforces.com/contest/525/problem/D #include<cstdio>#include<

CF#271 (Div. 2) D.(dp)

D. Flowers time limit per test 1.5 seconds memory limit per test 256 megabytes input standard input output standard output 题目链接: http://codeforces.com/contest/474/problem/D We s

CF Bayan 2015 Contest Warm Up B.(dfs+暴力)

B. Strongly Connected City time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output 题目链接: http://codeforces.com/contest/475/probl