方程的解数(dfs优化)
来源:互联网 发布:淘宝口碑客服电话 编辑:程序博客网 时间:2024/05/16 00:36
题意:
p=n x<=150正整数;
思路:
因为里面的乱七八糟的都是题目给你的,所以不能用数学方法做,然后就枚举一下。把他分成两份,只要前面的那一半加上后面的一半,等于0,就是方程成立的,所以就只用枚举三个未知数,时间复杂度为(m*m*m不会打次方)。然后又可以知道前面三个数和后面三个数为相反数,所以题目就变成了,前面未知数组成的数要等于后面的数的相反数,在查找过程中用到hash优化,时间复杂度忽略不计。
const maxn=4000037;var hash:array [0..maxn,1..2] of longint; i,j,n,m:longint; a:array [1..6,1..2] of longint; mi:array [0..150,0..30] of longint; ans:int64;procedure init;var i,j:longint;begin readln(n,m); for i:=1 to n do readln(a[i,1],a[i,2]); for i:=1 to 30 do mi[1,i]:=1; for i:=2 to m do begin mi[i,0]:=1; for j:=1 to trunc(ln(maxlongint)/ln(i)) do mi[i,j]:=mi[i,j-1]*i; end;end;procedure insetion(x:longint);var i,j:longint;begin i:=abs(x) mod maxn; while (hash[i,1]<>0) and (hash[i,1]<>x) do i:=i mod maxn+1; hash[i,1]:=x; inc(hash[i,2]);end;function find(x:longint):longint;var i,j:longint;begin i:=abs(x) mod maxn; while (hash[i,1]<>0) and (hash[i,1]<>x) do i:=i mod maxn+1; find:=iend;procedure dfs(dep,o:int64);var i,j,k:longint;begin if dep>n div 2 then begin insetion(o); exit; end; for i:=1 to m do dfs(dep+1,o+a[dep,1]*mi[i,a[dep,2]]);end;procedure dfs1(dep,o:int64);var i,j,k,p:longint;begin if dep>n then begin p:=0; p:=find(-o); if hash[p,1]=-o then ans:=ans+hash[p,2]; exit; end; for i:=1 to m do dfs1(dep+1,o+a[dep,1]*mi[i,a[dep,2]]);end;begin init; dfs(1,0); dfs1((n div 2)+1,0); writeln(ans);end.
0 0
- 方程的解数(dfs优化)
- [DFS][hash]方程的解数
- poj 1186 方程的解数(HASH,DFS)
- code vs 1735 方程的解数 (dfs+hash)
- poj 1186 方程的解数 (hash+双向dfs)
- 方程的解数
- 1186 -- 方程的解数
- 方程的解数
- [NOI2001]方程的解数
- 1436 方程的解数
- 【poj1186】 方程的解数
- 方程的解数(difficult)
- 计蒜客 方程的解数
- 【noi2001】方程的解数
- PKU 1186 方程的解数
- POJ 1186 方程的解数
- hoj 1372 方程的解数
- poj 1186 方程的解数
- OSSempend();OSSemPost();函数的解析
- opencv在图片指定区域内填充矩形,并在图片中显示矩形的轮廓
- POJ 3237 Tree(树链剖分)
- 【Java Tip】(三) Object类wait()与nofity()
- Linux初学备忘
- 方程的解数(dfs优化)
- 154. Find Minimum in Rotated Sorted Array II--Array--LeetCode--C++
- hdu1175(DFS)
- python使用requests包爬取Pixiv图片--关注画师的所有作品
- Tribon的网络版(TriWeb)上线啦
- 测试一下
- 轻松理解CRC差错检测算法(A PAINLESS GUIDE TO CRC ERROR DETECTION ALGORITHMS)一
- dijstra 模板
- java泛型