fzy&czn生日赛t1 CZN

膜拜hybb首杀

题目

题目背景

有一天,czn在机房里面心心念念的pj终于来找他了,pj希望czn能够帮助她来解决一道数学题,czn“十分不乐意”地接下了这个题目,所以他希望你可以帮助他一下。

题目描述

\(\\\) 不等式是形如 \((x - a_1)^{b_1} * (x - a_2)^{b_2} * (x - a_3)^{b_3} * ······ * (x - a_n)^{b_4} < 0\) 的式子,

\(\\\) 请问这个不等式关于 \(x\) 的解集是多少?

分析

我们把不等式的每一项拆开看,只要满足小于0的项有奇数个不等式就成立且任意一想不等式均不等于 \(0\) 。

朴素算法是判断每一个区间是否成立。

简便一点的做法就是:穿根法。

对于这个数据:

5
13 21 9 70 22
23 36 8 29 15

我们把所有 \(a_i\) 从小到大排序

9 13 21 22 70
8 23 36 15 29

然后画在数轴上,如下:

之后我们从右上方开始穿针引线,如果第 $b_i \ mod \ 2 == 0 $ 就穿过它,如下:

最后我们发现在数轴之下的区间都是合法的,再处理一下所有区间都不包含端点就可以了。

记得开\(long\ long\)

my code

#include <bits/stdc++.h>
#define fu(x , y , z) for(int x = y ; x <= z ; x ++)
#define LL long long
using namespace std;
const int INF = -114514 , N = 1e5 + 5;
int ans[N][5] , n , ans1;
struct R {
LL a , b;
}re[N];
bool comp (R x , R y) { return x.a < y.a; }
int main () {
scanf ("%d" , &n);
re[1].a = INF , re[1].b = 1;
fu (i , 2 , n + 1) {
scanf ("%lld" , &re[i].a);
}
fu (i , 2 , n + 1)
scanf ("%lld" , &re[i].b);
sort (re + 2 , re + n + 2 , comp);
int i = n + 1;
while (i >= 1) {
while (re[i].b % 2 == 0 && i >= 1)
i --;
if (i <= 1) break;
ans[++ans1][1] = i , ans[ans1][2] = i - 1;
i --;
while (re[i].b % 2 == 0 && i >= 1) {
ans[++ans1][1] = i , ans[ans1][2] = i - 1;
i --;
}
i --;
}
if (!ans1) {
printf ("NO ANSWER") , exit (0);
}
printf ("%d\n" , ans1);
for (int i = ans1 ; i >= 1 ; i --) {
if (re[ans[i][2]].a != INF)
printf ("%lld<x<%lld\n" , re[ans[i][2]].a , re[ans[i][1]].a);
else
printf ("-INF<x<%lld\n" , re[ans[i][1]].a);
}
return 0;
}

wnag's code

#include<bits/stdc++.h>
#define LL long long
using namespace std;
LL n,tot=0;
struct node
{
LL a,b;
}s[100000+10],fans[100000+10];
bool cmp(node a,node b)
{
return a.a<b.a;
}
int main()
{
scanf("%lld",&n);
for(int i=1;i<=n;++i)
scanf("%lld",&s[i].a);
for(int i=1;i<=n;++i)
scanf("%lld",&s[i].b);
sort(s+1,s+n+1,cmp);
int y=0;
for(int i=n;i>=1;--i)
{
while(s[i].b%2==0&&i>=1)
i--;
if(i==0)
break;
y=s[i].a;
i--;
while(s[i].b%2==0&&i>=1)
{
fans[++tot]=(node){s[i].a,y};
y=s[i].a;
i--;
}
if(i==0)
fans[++tot]=(node){0,y};
else
fans[++tot]=(node){s[i].a,y};
}
sort(fans+1,fans+tot+1,cmp);
if(tot==0)
printf("NO ANSWER");
else
{
printf("%lld\n",tot);
for(int i=1;i<=tot;++i)
{
if(fans[i].a==0)
printf("-INF<x<%lld\n",fans[i].b);
else
printf("%lld<x<%lld\n",fans[i].a,fans[i].b);
}
}
return 0;
}

fzy&czn生日赛t1 CZN的更多相关文章

  1. 【洛谷比赛】[LnOI2019]长脖子鹿省选模拟赛 T1 题解

    今天是[LnOI2019]长脖子鹿省选模拟赛的时间,小编表示考的不怎么样,改了半天也只会改第一题,那也先呈上题解吧. T1:P5248 [LnOI2019SP]快速多项式变换(FPT) 一看这题就很手 ...

  2. 2019.2.25 模拟赛T1【集训队作业2018】小Z的礼物

    T1: [集训队作业2018]小Z的礼物 我们发现我们要求的是覆盖所有集合里的元素的期望时间. 设\(t_{i,j}\)表示第一次覆盖第i行第j列的格子的时间,我们要求的是\(max\{ALL\}\) ...

  3. [NOIP2018校模拟赛]T1聚会 party

    题目链接: 聚会 分析: 设每个点到1号点的距离为dist_{i},每个点的权值为x_{i},目标点到1号点的距离为dist,权值为x,那么对于每一次查询,我们讨论三种情况: ① 目标家庭在区间左边( ...

  4. 【2019.7.20 NOIP模拟赛 T1】A(A)(暴搜)

    打表+暴搜 这道题目,显然是需要打表的,不过打表的方式可以有很多. 我是打了两个表,分别表示每个数字所需的火柴棒根数以及从一个数字到另一个数字,除了需要去除或加入的火柴棒外,至少需要几根火柴棒. 然后 ...

  5. 【2019.7.25 NOIP模拟赛 T1】变换(change)(思维+大分类讨论)

    几个性质 我们通过推式子可以发现: \[B⇒AC⇒AAB⇒AAAC⇒C\] \[C⇒AB⇒AAC⇒AAAB⇒B\] 也就是说: 性质一: \(B,C\)可以相互转换. 则我们再次推式子可以发现: \[ ...

  6. 20180610模拟赛T1——脱离地牢

    Description 在一个神秘的国度里,年轻的王子Paris与美丽的公主Helen在一起过着幸福的生活.他们都随身带有一块带磁性的阴阳魔法石,身居地狱的魔王Satan早就想着得到这两块石头了,只要 ...

  7. 模拟赛 T1 费马小定理+质因数分解+exgcd

    求:$a^{bx \%p}\equiv 1(\mod p)$ 的一个可行的 $x$. 根据欧拉定理,我们知道 $a^{\phi(p)}\equiv 1(\mod p)$ 而在 $a^x\equiv 1 ...

  8. 20190716NOIP模拟赛T1 礼物(概率dp+状压)

    题目描述 夏川的生日就要到了.作为夏川形式上的男朋友,季堂打算给夏川买一些生 日礼物. 商店里一共有种礼物.夏川每得到一种礼物,就会获得相应喜悦值Wi(每种 礼物的喜悦值不能重复获得). 每次,店员会 ...

  9. 纪中20日c组模拟赛T1 2121. 简单游戏

    T1 2121. 简单游戏 (File IO): input:easy.in output:easy.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制 Goto Pro ...

  10. 5.15 省选模拟赛 T1 点分治 FFT

    LINK:5.15 T1 对于60分的暴力 都很水 就不一一赘述了. 由于是询问所有点的这种信息 确实不太会. 想了一下 如果只是询问子树内的话 dsu on tree还是可以做的. 可以自己思考一下 ...

随机推荐

  1. react 收集表单数据 react-hook-form

    import React from 'react' import ReactDOM from 'react-dom' import { useForm } from 'react-hook-form' ...

  2. 在Win7的64位系统中安装最新版Eclipse或STS

    Eclipse版本为:eclipse-jee-2021-12-R-win32-x86_64 STS版本为:sts-4.13.1.RELEASE 这两个版本中都自带了17.0.1的jre插件,默认会使用 ...

  3. 财开心批量处理系统V4.0

    前言 上次分析了亿企代账对他的发票提取有很大兴趣,同时下载了几大财务厂商提供的发票提取,很多都是采用的这个,如云账房销项提取插件还有本次研究的财开心批量处理系统 分析 demo 直接用亿企代账分析的代 ...

  4. class1,2,3,4,5,6,7

    //测试你是哪一类学者 #include<stdio.h> int main() { int ans; char words[5000]; printf("网课学习让一些人喜一些 ...

  5. SpringBoot解决跨域方案

    SpringBoot解决跨域的几种方式 跨域资源共享(CORS):通过修改Http协议header的方式,实现跨域.说的简单点就是,通过设置HTTP的响应头信息,告知浏览器哪些情况在不符合同源策略的条 ...

  6. gRPC之.Net6中的初步使用说明

    1.介绍 GRPC是一个高性能.通用的开源远程过程调用(RPC)框架,基于底层HTTP/2协议标准和协议层Protobuf序列化协议开发,支持众多的开发语言,由Google开源. gRPC也是基于以下 ...

  7. Python学习笔记--异常+模块+包

    异常的捕获 基本语法: 示例: 捕获指定异常 基本语法:--必写 示例: 捕获多个异常 示例: 捕获所有异常 示例: 异常else--可写可不写 示例: 异常finally(无论是否出现异常,都会去执 ...

  8. Qt开发技术:Q3D图表开发笔记(一):Q3DScatter三维散点图介绍、Demo以及代码详解

    前言   qt提供了q3d进行三维开发,虽然这个框架没有得到大量运用也不是那么成功,性能上也有很大的欠缺,但是普通的点到为止的应用展示还是可以的.  其中就包括华丽绚烂的三维图表,数据量不大的时候是可 ...

  9. SQL注入,Hacker入侵数据是如何做到的

    什么是SQL注入? SQL注入就是未将代码与数据进行严格的隔离,导致在读取用户数据的时候,错误地把黑客注入的数据作为代码的一部分执行. SQL注入自诞生以来以其巨大的杀伤力闻名. 例子: 典型的SQL ...

  10. INT 21H 指令说明及使用方法 (转载)

    转载这篇博客 https://www.cnblogs.com/ynwlgh/archive/2011/12/12/2285017.html 侵删   送张ascii码表 很多初学汇编语言的同学可能会对 ...