2016年提高组模拟试题(20161105) 方程式
2016-11-08 16:45
316 查看
分析:
一定为整数解且一定有解。所以说一定可以变为这样的形式
(x-a1)(x-a2)(x-a3)…(x-an)=0
解就是a1…an。
但是会有重根,也就是说(x-ai)^k(k>=1)。
我们首先在0~20内枚举所有解,如果不够n个(题目有说,我也不清楚为什么有n个解,证明自己去看)。
然后就可以枚举k,如果有t个解,那就有n-t个重根,也就是(1<=k<=n-t)。枚举每个(x-ai)^k的k,然后看看化简后的各项系数是不是题目给的,就可以暴力过。
代码:
(f为杨辉三角,可以用它来确定某项的k次幂的各项系数)
var a,x,b,q,q1,q2:array [0..20] of longint; power,f:array [-20..20,0..10] of longint; n,num:longint; i,j:longint; s:longint; procedure dfs(xx:longint); var i,j,k:longint; flag:boolean; begin if xx=num+1 then begin fillchar(q,sizeof(q),0); fillchar(q1,sizeof(q1),0); fillchar(q2,sizeof(q2),0); for i:=1 to b[1]+1 do q[b[1]-i+2]:=(f[b[1],i]*power[-x[1],i-1]); fillchar(q1,sizeof(q1),0); for i:=2 to num do begin for k:=1 to b[i]+1 do q2[b[i]-k+2]:=(f[b[i],k]*power[-x[i],k-1]); for j:=1 to n do for k:=1 to b[i]+1 do q1[j+k-1]:=(q1[j+k-1]+q[j]*q2[k]); q:=q1; fillchar(q1,sizeof(q1),0); end; flag:=true; for i:=1 to n do begin if (a[i]<>q[i]) then begin flag:=false; break; end; end; if flag then begin for i:=1 to num do for j:=1 to b[i] do write(x[i],' '); halt; end; exit; end; for i:=1 to n-num do begin b[xx]:=i; dfs(xx+1); end; end; begin readln(n); for i:=1 to n+1 do read(a[i]); inc(n); if a[1]=0 then begin inc(num); x[num]:=0; end; for i:=1 to 20 do begin power[i,0]:=1; power[-i,0]:=1; for j:=1 to 7 do begin power[i,j]:=power[i,j-1]*i; if odd(j) then power[-i,j]:=-power[i,j] else power[-i,j]:=power[i,j]; end; end; for i:=1 to 20 do begin s:=0; for j:=1 to n do s:=s+a[j]*power[i,j-1]; if s=0 then begin inc(num); x[num]:=i; end; end; f[1,1]:=1; f[1,2]:=1; for i:=2 to n-num do begin for j:=1 to i+1 do f[i,j]:=f[i-1,j]+f[i-1,j-1]; end; dfs(1); end.
相关文章推荐
- 2016年提高组模拟试题(20161105) 方程式
- 2016年提高组模拟试题(20161105)Mahjong
- 2016年提高组模拟试题(20161105)高维宇宙
- 2016年提高组模拟试题(20161116) 《逍遥游》ssl 2581 奇葩
- SSL2556 2016年提高组模拟试题(20161107)舞会配对(贪心)
- SSL2560 2016年提高组模拟试题 连锁店(贪心)
- SSL2562 2016年提高组模拟试题 禅与园林艺术
- CCF-NOIP-2018 提高组(复赛) 模拟试题(三)
- CCF-NOIP-2018 提高组(复赛) 模拟试题(四)
- 2011分区联赛模拟试题 积木分发(jzoj提高C组)
- CCF-NOIP-2018 提高组(复赛) 模拟试题(五)
- 2011分区联赛模拟试题 积木分发(jzoj提高C组)
- 2016年提高组模拟题(20161114) 文件列表 ssl 2572 模拟
- CCF-NOIP-2018 提高组(复赛) 模拟试题(一)
- CCF-NOIP-2018 提高组(复赛) 模拟试题(七)
- 2016年普级组模拟试题(10月20日) 小游戏game
- CCF-NOIP-2018 提高组(复赛) 模拟试题(九)(2018 CSYZ长沙一中)
- SSL2542 2016提高组模拟试题 皮皮(并查集)
- SSL2541 2016提高组模拟试题 敌敌(树形dp)
- 2016.08.17【初中部 NOIP提高组 】模拟赛C(图论专项模拟试题)