时间: 1000ms / 空间: 131072KiB / Java类名: Main

背景

第二届『Citric杯』NOIP提高组模拟赛第一题

描述

Lemon认为在第一届『Citric』杯模拟赛中出的题目太简单了,于是他决定,这次要给参赛选手们一个下马威! ^_^

Lemon手上有一个长度为n的数列,第i个数为xi。
他现在想知道,对于给定的a,b,c,他要找到一个i,使得a*(i+1)*xi^2+(b+1)*i*xi+(c+i)=0成立。
如果有多个i满足,Lemon想要最小的那个i。
Lemon有很多很多组询问需要你回答,多到他自己也不确定有多少组。所以在输入数据中a=b=c=0标志着Lemon的提问的结束。

更加糟糕的是,Lemon为了加大难度,决定对数据进行加密以防止离线算法的出现。
假设你在输入文件中读到的三个数为a0,b0,c0,那么Lemon真正要询问的a=a0+lastans,b=b0+lastans,c=c0+lastans.
lastans的值是你对Lemon的前一个询问的回答。如果这是第一个询问,那么lastans=0
所有的询问都将会按上述方式进行加密,包括标志着询问的结束的那个询问也是这样。

输入格式

输入文件第一行包含一个正整数n,表示数列的长度。
输入文件第二行包含n个整数,第i个数表示xi的值。
接下来若干行,每行三个数,表示加密后的a,b,c值(也就是上文所述的a0,b0,c0)

输出格式

包含若干行,第i行的值是输入文件中第i个询问的答案。注意,你不需要对标志着询问结束的那个询问作答。
同时,标志着询问结束的询问一定是输入文件的最后一行。也就是,输入文件不会有多余的内容。

测试样例1

输入


-2 3 1 -5 2 
-5 -4 145 
-1 -6 -509 
-9 -14 40 
-3 -13 21 
-3 -3 -3

输出




3

备注

第一个询问中,真实的a=-5+0=-5,b=-4+0=-4,c=145+0=145(第一个询问中lastans=0)
带入发现,i=5时,-5*(5+1)*2^2+(-4+1)*5*2+145+5=0,而其他的i均不符合条件。所以答案是5.
第二个询问中,真实的a=-1+5=4,b=-6+5=-1,c=-509+5=-504(lastans是上一个询问的答案的值,也就是5)
经带入发现,i=4时,4*(4+1)*(-5)^2+(-1+1)*4*(-5)+(-504)+4=0,满足条件,而其他的i均不满足条件,所以答案是4.
同理,第三个询问中真实的a=-5,b=-10,c=44.答案i=3
第四个询问中真实的a=0,b=-10,c=24,答案i=3
第五个询问中真实的a=0,b=0,c=0,此时我们发现这是一个标志着结束的询问,这个询问我们无需作出回答。

思路

  FROM HZWER 

  我们考虑最后一行,因为其代表文件结束,所以解密后的a=b=c=0。那么我们可以知道倒数第二行的答案(LastAns=-a=-b=-c)。那么原始式子即转换成一个简单的三元一次式子(只和a,b,c有关),然后这解密后的值又可以由上一行的答案和输入的a0,b0,c0得到,于是就变成了一个只和LastAns有关系的一元一次式子,所以又可以得到了上一行的答案。所以这样一直算回去就好了。

  出题人真是丧失

var  i,j,l,m,n:longint;k1,k2:int64;x,a,b,c,ans:array[1..500000] of int64;function work1(i:longint):int64;
beginexit( (i+1)*sqr(x[i]) );
end;function work2(i:longint):int64;
beginexit( x[i]*i );
end;function work3(i:longint):int64;
beginexit( i*x[i]+i );
end;beginread(n);for i:=1 to n doread(x[i]);m:=0;while true dobegininc(m);read(a[m],b[m],c[m]);if (a[m]=b[m])and(b[m]=c[m]) then break;end;ans[1]:=0-a[m];l:=1;for i:=m-1 downto 2 dobeginj:=ans[l];inc(l);k1:=a[i]*work1(j)+b[i]*work2(j)+c[i]+work3(j);k2:=work1(j)+work2(j)+1;ans[l]:=(-k1) div k2;end;for i:=m-1 downto 1 dowriteln(ans[i]);
end.

View Code

转载于:https://www.cnblogs.com/yangqingli/p/4890207.html

[TYVJ1827]『Citric II』一道防AK好题相关推荐

  1. [TYVJ 1927] 『Citric II』一道防AK好题 · 模拟

    出题人真是丧(gan)心(de)病(piao)狂(liang)! 题面说的各种玄乎各种牛逼然而却毫无卵用 对于最后一组a b c ,因为要加上lastans以后=0,所以明显倒数第二组的解就是ans= ...

  2. [3.3训练赛]One-Dimensional(矩阵快速幂),Freda的迷宫(无向图强连通分量+并查集),一道防AK好题

    文章目录 T1:One-Dimensional title solution code T2:[NOIP模拟赛]Freda的迷宫 title solution code T3:[NOIP模拟赛]一道防 ...

  3. 数列 COGS1048:[Citric S2] 一道防AK好题

    [题目描述] Czy手上有一个长度为n的数列,第i个数为xi. 他现在想知道,对于给定的a,b,c,他要找到一个i,使得a*(i+1)*xi2+(b+1)*i*xi+(c+i)=0成立. 如果有多个i ...

  4. 第一届『Citric杯』NOIP提高组模拟赛 题解

    [官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...

  5. 第二届『Citric杯』NOIP提高组模拟赛

    一道防AK的好题 不得不吐槽这个题目背景和算法.这就是一脑筋急转弯啊. Code program hard; CONST FileName='hard'; var n,i,tot:longint;x, ...

  6. 洛谷 2 月月赛 I 『MdOI R4』 (Div2) A ~ D 四题全,也许会有六题,超高质量题解 (Div.1E、F下辈子一定补)【每日亿题2 / 9】

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 A.P7337 『MdOI R4』Fun B.P7338 『MdOI R4』Color C.P7 ...

  7. 21南阳理工oj新生赛Round#5--这是一道防ak题

    题目如下: 题目类型:数学类,思维类. AC代码如下: #include<iostream> #define ll long long using namespace std; int m ...

  8. 『中秋赏月』程序员用文心大模型带你玩转不一样的中秋

    『中秋赏月』文心大模型带你玩转不一样的中秋 中秋 文心大模型使用 安装wenxin_api 利用ERNIE-ViLG文生图模型生成图片 下载生成的图片 使用ERNIE 3.0模型,生成有关中秋的佳句 ...

  9. java安装 1723_2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段...

    2017-2018-2 1723 『Java程序设计』课程 结对编程练习-四则运算-准备阶段 在一个人孤身奋斗了将近半个学期以后,终于迎来的我们的第一次团队协作共同编码,也就是,我们的第一个结对编程练 ...

最新文章

  1. 后退到的页面为什么没有执行js_为什么中层没有执行力?
  2. matlab共轭梯度法_优化算法之牛顿法
  3. android推送如何推送不在线设备,推送系统从0到1(四):消息如何到达用户设备...
  4. webpack打包js文件
  5. python海龟绘图_Python教学案例|海龟绘图三例
  6. [Unity脚本运行时更新]C#7.2新特性
  7. Scrapy框架(持久化,去重,深度控制,cookie)
  8. 个人开源项目之快速检索算法
  9. 站内消息弹出层简单实现
  10. iPhone路径大全
  11. QCA9886降低功耗指令
  12. 第八章 项目质量管理
  13. MATLAB符号运算
  14. 手机app注册登录服务器客户端流程图
  15. EXCEL制作统计图表
  16. 多核cpu应用场景_1分钟搞懂 CPU该买多核还是高主频?
  17. CPAN | 配置阿里源
  18. 【JZOJ5234】外星人的路径
  19. 医院绩效考核病案首页上报系统,智能上报轻松无忧
  20. library sort(图书馆排序)

热门文章

  1. 对于大型公司项目平台选择j2ee的几层认识(二)
  2. Google Play In-app Billing
  3. reviewer中文_中文审稿意见怎么写
  4. 《Spring事务传播行为详解》经典例子 看完这篇,别的不用看了
  5. 重要!SpringBoot一个非常蛋疼的无法启动的问题解决
  6. win7下32位eclipse启动错误
  7. rust如何在木板上上传图片_腐蚀rust游戏玩法方式详解
  8. 【软件测试】软考-2022软件评测师考试心得
  9. java调用阿里云api发送短信验证服务
  10. 可以打勾的计划表app?标记完成计划试试这款便签