fzy&czn生日赛t1 CZN

膜拜hybb首杀

文章目录

  • fzy&czn生日赛t1 CZN
    • 题目背景
    • 题目描述
    • 分析
    • my code
    • wnag's code

题目

题目背景

有一天,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 - a_1)^{b_1} * (x - a_2)^{b_2} * (x - a_3)^{b_3} * ······ * (x - a_n)^{b_4} < 0 (x−a1​)b1​∗(x−a2​)b2​∗(x−a3​)b3​∗⋅⋅⋅⋅⋅⋅∗(x−an​)b4​<0 的式子,
$\$ 请问这个不等式关于 x x x 的解集是多少?

分析

我们把不等式的每一项拆开看,只要满足小于0的项有奇数个不等式就成立且任意一想不等式均不等于 0 0 0 。
朴素算法是判断每一个区间是否成立。
简便一点的做法就是:穿根法。
对于这个数据:

5
13 21 9 70 22
23 36 8 29 15

我们把所有 a i a_i ai​ 从小到大排序

9 13 21 22 70
8 23 36 15 29

然后画在数轴上,如下:

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

最后我们发现在数轴之下的区间都是合法的,再处理一下所有区间都不包含端点就可以了。
记得开 l o n g l o n g long\ long 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};elsefans[++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;
}

fzyczn生日赛t1 CZN相关推荐

  1. 洛谷 10月 csp-s 模拟赛 T1,T2解析及代码

    洛谷 10月 csp-s 模拟赛 T1,T2解析及代码 T1 Magenta Potion 题目描述 给定一个长为 nnn 的整数序列 aaa,其中所有数的绝对值均大于等于 222.有 qqq 次操作 ...

  2. 程序设计天梯赛——T1(15分)java版

    程序设计天梯赛--java版 文章目录 程序设计天梯赛--java版 3-个位数统计 输入格式: 输出格式: 输入样例: 输出样例: 5-考试座位号 输入格式: 输出格式: 输入样例: 输出样例: 1 ...

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

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

  4. 世纪末的星期(Java-蓝桥杯-省赛-T1)初学者详解

    T1 世纪末的星期 曾有邪教称1999年12月31日是世界末日.当然该谣言已经不攻自破.还有人称今后的某个世纪末的12月31日,如果是星期一则会....有趣的是,任何一个世纪末的年份的12月31日都不 ...

  5. 【2019.7.16 NOIP模拟赛 T1】洗牌(shuffle)(找环)

    找环 考虑每次洗牌其实是一次置换的过程,而这样必然就会有循环出现. 因此我们直接通过枚举找出每一个循环,询问时只要找到环上对应的位置就可以了. 貌似比我比赛时被卡成\(30\)分的倍增简单多了? 代码 ...

  6. 20161023 NOIP 模拟赛 T1 解题报告

    Task 1.纸盒子 (box.pas/box.c/box.cpp) [题目描述] Mcx是一个有轻度洁癖的小朋友.有一天,当他沉溺于数学卷子难以自拔的时候,恍惚间想起在自己当初学习概率的时候准备的一 ...

  7. 2019-3-15 模拟赛 T1

    题意 给你一个数 \(k\) ,\(n\) 个桶,有 \(m\) 个桶有容量上限 \(w_i\) ,其它桶则没有.求把数拆开放到各个桶里,最终得到序列的方案数. 数据范围 : \(n,k<=5* ...

  8. 【第一届“文翁杯”现场竞技赛】(校内“欢乐”赛)T1—洗刷刷(dp)

    传送门 dpdpdp简单题,才不是因为我去打答案的表才没去想正解呢 考虑一个四维dpdpdp f[pos][i][j][k]f[pos][i][j][k]f[pos][i][j][k]表示当前处理到p ...

  9. 7.9模拟赛T1图的遍历(dfs)

    图的遍历(dfs) [题目描述] 对于一个有向图G来说,我们存在一个经典的遍历算法,就是DFS (深度优先搜索遍历).将G以1号点为起点进行DFS后,我们可以 得到G的一棵DFS遍历树T.就此,我们可 ...

最新文章

  1. 架构漫谈读后感之软件架构师如何工作
  2. Silverlight 应用程序之间在客户端通信
  3. primefaces_轻量级Web应用程序:PrimeFaces(JSF)+ Guice + MyBatis(第1部分)
  4. C++面试常见问题整理汇总(面试者必看哦!)
  5. android 调用系统短信接口开发,聚合数据Android SDK 短信api接口验证演示示例
  6. HTML左侧下拉列表,HTML中的下拉列表 select
  7. 如何在github上发起一个pull request,如何贡献代码,参与开源项目
  8. 一步步了解线程池之自定义-PriorityThreadPool
  9. 让MySQL不区分大小写
  10. VS2015,C++MFC建立可视化界面第一天
  11. 中了磁碟机病毒,惨啊!!!
  12. 英雄无敌3 Def 文件对应生物列表
  13. [决策单调 分治] LOJ#535. 「LibreOJ Round #6」花火
  14. windows打包ios app
  15. pc安装android,在电脑上安装安卓的过程
  16. 经纬财富:四平怎么炒白银能挣到钱?
  17. fbreader android源码分析,开源阅读器FBReader Android版本的编译
  18. linux的webui服务,Aria2控制前端WebUI客户端安装教程
  19. 拾忆书苑(图书商城系统)网站的设计与实现(html;DIV+CSS; Bootstrap; Dreamweaver; Photoshop)
  20. sql语句常见错误:Unknown column 'xxx' in 'where clause该如何解决?

热门文章

  1. Elasticsearch配置拼音分词和自定义分词器
  2. 利用Python将多张图像合成视频
  3. 纯js图片验证码Captcha.js
  4. Ubuntu 18.04 服务器版安装桌面及软件
  5. 视频播放--自动播放
  6. (邱维声)高等代数课程笔记:基,维数与坐标
  7. iOS Bug---CoreLocation 部分机型卡界面
  8. DataWhale Golang(十、异常处理)
  9. ByVal与ByRef的区别
  10. python 文本文件中去重复