woshiren在洛谷刷題,感覺第一題:求兩數的和(a+b problem)太無聊了,於是增加了一題:a-b problem,難倒了一群小朋友,哈哈。
給出n 個從小到大排好序的整數,乙個差值c,要求在這n個整數中找兩個數a 和b,使得a-b=c,問這樣的方案有多少種?
例如:n=5,c=2,5 個整數是:2 2 4 8 10。答案是3。具體方案:第3 個數減第1 個數;第3 個數減第2 個數;第5 個數減第4 個數。
輸入格式:
第一行2 個正整數:n,c。
第二行n 個整數:已經有序。注意:可能有相同的。
輸出格式:
乙個整數,表示該串數中包含的所有滿足a-b=c 的數對的方案數。
輸入樣例#1:
4 11 1 2 2
輸出樣例#1:
4
對於50% 的資料:n 的範圍是[1…1,000]。
對於另外50% 的資料:n 的範圍是[1…100,000]。
對於100% 的資料:c 的範圍是[1…1,000,000,000],n 個整數中每個數的範圍是:[0…1,000,000,000]。
**和未加強的一樣
屠龍寶刀點選就送
#include #include#include
#include
#define in long long
#define mo 20047
#define mo2 13831
using
namespace
std;
struct
node
edge[
2000001
];in ans,tot,head[2000001],a[200001
],i,j,n,c,b;
inqr()
while(ch>='
0'&&ch<='9'
)
return x*f;
}in get_hash1(in
k)in get_hash2(in
q)void lj(in
from,in
to) }
tot++;
edge[tot].next=head[from
]; edge[tot].to=to;
head[
from]=tot;
edge[tot].cs++;
}void add(in u,inv)}
int query(in u,in
v)
return0;
}int
main()
for(i=0;ii)
cout
}
P2421 A B數對(增強版)
woshiren在洛谷刷題,感覺第一題 求兩數的和 a b problem 太無聊了,於是增加了一題 a b problem,難倒了一群小朋友,哈哈。給出n 個從小到大排好序的整數,乙個差值c,要求在這n個整數中找兩個數a 和b,使得a b c,問這樣的方案有多少種?例如 n 5,c 2,5 個整數...
洛谷 P2421 A B數對(增強版)
給出n 個從小到大排好序的整數,乙個差值c,要求在這n個整數中找兩個數a 和b,使得a b c,問這樣的方案有多少種?例如 n 5,c 2,5 個整數是 2 2 4 8 10。答案是3。具體方案 第3 個數減第1 個數 第3 個數減第2 個數 第5 個數減第4 個數。輸入格式 第一行2 個正整數 n...
洛谷 P2421 A B數對(增強版)
woshiren在洛谷刷題,感覺第一題 求兩數的和 a b problem 太無聊了,於是增加了一題 a b problem,難倒了一群小朋友,哈哈。給出n 個從小到大排好序的整數,乙個差值c,要求在這n個整數中找兩個數a 和b,使得a b c,問這樣的方案有多少種?例如 n 5,c 2,5 個整數...