首页 > 其他分享 >CSP模拟赛 #37

CSP模拟赛 #37

时间:2024-10-14 16:34:18浏览次数:1  
标签:直线 le 题意 10 37 位为 CSP 模拟 个点

A

题意:给定 \(n, a_{1\sim n}, b_{1\sim n}\),两个点 \(i,j\) 之间有连边当且仅当 \(a_i - a_j\le i - j \le b_i - b_j\) 或 \(a_j - a_i\le j - i\le b_j - b_i\),求图中连通块数量。

\(1\le n\le 10^6\)

考虑条件 \(a_i - a_j\le i - j \le b_i - b_j\) 相当于 \(a_i - i\le a_j - j\) 并且 \(i - b_i\le j - b_j\)。

令 \(x_i = a_i - i,\ y_i = b_i - i\),那么满足 \(x_i\le x_j\) 且 \(y_i\le y_j\) 的两个点 \(i, j\) 连边。

将所有点按 \(x_i\) 从小到大排序,用一个栈表示目前所有连通块的最小的 \(y\) 值,每次加入一个点更新即可。

B

题意:平面上有 \(n\) 个点,请你确定 \(k\) 条互相平行的直线,满足每个点至少在一条直线上,并且每条直线上至少有 \(2\) 个点。数据保证至少有一个解。

\(2\le n\le 4\times 10^4, \ 1\le k\le \min(50, \frac n2)\)

鸽巢原理,考虑前 \(k + 1\) 个点至少有两个点被分配到同一条直线上。枚举这两个点,即可确定直线的斜率,然后 \(O(n)\) 判定,时间 \(O(nk^2)\)。

有更优的做法。考虑处理出这 \(n\) 个的上 / 下凸包,那么直线的斜率一定取自于凸包上相邻两点的斜率,这样只需要枚举 \(O(k)\) 次了。

C

题意:给定 \(n\),计数有多少个严格单调递增,值域在 \([1, 2^n)\) 的序列 \((a_1, a_2, \dots, a_m)\) 满足不存在位置 \(i(1\le i\le m - 2)\) 满足 \(a_i \oplus a_{i + 1} \oplus a_{i + 2} \not = 0\),答案对 \(998244353\) 取模。

\(1\le n\le 2\times 10^7\)

考虑按第 \(n\) 位来分类。第 \(n\) 位为 \(1\) 的数一定满足条件,第 \(n\) 位为 \(0\) 的数可以划分子问题,所以可以按分界线处来容斥。

设 \(f[i]\) 表示位数为 \(i\) 且最后一个数的第 \(i\) 位为 \(1\) 的方案数,总方案数为 $f[i - 1]\cdot $

标签:直线,le,题意,10,37,位为,CSP,模拟,个点
From: https://www.cnblogs.com/Sktn0089/p/18464475

相关文章

  • csp-s模拟11
    E题面最暴力的做法,枚举连续段长度\(i\),然后暴力搜索,复杂度\(O(n^3)\)点击查看代码#include<bits/stdc++.h>#definespeed()ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);#definelllonglong#definepbpush_back#defineullunsignedlonglong#define......
  • 1014 CW 模拟赛 B.旅行
    题面现在的题似乎都找不到原题了挂个pdf题面下载算法容易想到链和菊花图的做法,需要注意的是计算深度只能用\(\rm{dfs}\)来跑,不能保证链的顺序与输入顺序相同对于\(n,m\leq10^3\),观察暴力做法暴力容易发现对于每一个点,都要由起点\(1\)开始,先到达一条链......
  • 逍遥安卓模拟器命令行合集(memuc命令)
    逍遥安卓模拟器命令行合集(memuc命令)用cmd自行测试模拟器配合工具:memuc是v6.0.0版本推出的命令行工具,它封装了MEmuConsole、MEmu、MEmuManage的接口,支持多开管理、修改配置、android通信、adb命令等功能。memuc支持多个模拟器的管理,所以某些命令需要传入模拟器序号或者模......
  • 10.12 代码源 2024 CSP-S 模拟赛 Day 14
    省流:\(100+0+0+8=108\)简称:唐诗T1T2T2很有思路,几分钟就推出来一个\(a_i\)不全为奇数的柿子,然后发现大样例是全为奇数的()然后就一直在推式子,然后快推完了比赛结束了……然后赛后发现全为奇数的用暴力搞……T3一眼DP但是想写T2,甚至连暴力都没码……正解是状压(一位大......
  • ABC375 Review
    ABC375ReviewAB模拟题过C很让人恼怒的一道题,思路一点也不难想,但是代码实现过于困难了(对于我来说)分析自己找一两组样例就会发现这道题实际上实在模拟一个矩阵不断向内旋转\(90°\)的过程,从外到里旋转的次数越来越多,旋转的过程可以发现实际上可以通过模\(4\)来进行简化......
  • STL——string类的模拟实现
    一.STL简介 1.1什么是STL STL(standardtemplatelibaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。1.2STL的六大组件接下来开始模拟实现STL中的常用string类三个成员变量char*......
  • Day7 备战CCF-CSP练习
    Day7题目描述栋栋最近开了一家餐饮连锁店,提供外卖服务。随着连锁店越来越多,怎么合理的给客户送餐成为了一个急需解决的问题。栋栋的连锁店所在的区域可以看成是一个\(n×n\)的方格图(如下图所示),方格的格点上的位置上可能包含栋栋的分店(绿色标注)或者客户(蓝色标注),有一些格点是......
  • SpringBoot&Mybatis的苏果超市商品销售管理系统 毕业设计源码93704
                            摘 要在网络信息的时代,众多的软件被开发出来,给用户带来了很大的选择余地,而且人们越来越追求更个性的需求。在这种时代背景下,超市只能以用户为导向,按品种小批量组织生产,以产品的持续创新作为超市最......
  • 2024/9/16 CSP-S模拟赛试题
    A这题是很有意思的一个题,思路就是你考虑kt的位置只可能在四个角,因为这种情况下,他的距离才会最远对吧,所以你就暴力找另一个人fengwu的点的位置,然后计算他们之间的距离然后你求一个\(\max\)即可,然后记录一下这些\(\max\)的值,最后排个序就好了。代码:#include<bits/stdc++.h>usi......
  • 24/10/13 ABC375补题笔记
    A典,属于显而易见的水题,这数据范围直接暴力做就行了。#include<bits/stdc++.h>usingnamespacestd;intmain(){ intn; cin>>n; strings; cin>>s; intcnt=0; if(n<2)returncout<<0<<endl,0; for(inti=0;i<s.size()-2;i++)......