#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,a,b;cin >> n >> a >> b;
for(int i = 1;i <= n;i++){
int c;cin >> c;
if(a+b == c){
cout << i;
break;
}
}
}
#include<bits/stdc++.h>
using namespace std;
bool c[101][101];
int h,w;
int num[101];
int f(int i,int j){
int t = 1;
while(i + t <= h && i - t >= 1 && j + t <= w && j - t >= 1 && c[i+t][j+t] && c[i+t][j-t] && c[i - t][j + t] && c[i - t][j - t]){
c[i+t][j+t] = c[i+t][j-t] = c[i-t][j-t] = c[i - t][j + t] = 0;
t++;
}
return t - 1;
}
int main()
{
cin >> h >> w;
for(int i = 1;i <= h;i++)
{
string str;cin >> str;
for(int j = 0;j < w;j++){
if(str[j] != '.')
c[i][j + 1] = 1;
}
}
for(int i = 1;i <= h;i++)
for(int j = 1;j <= w;j++)
if(c[i][j])
num[f(i,j)]++;
int mi = min(h,w);
for(int i = 1;i <= mi;i++)
cout << num[i] << ' ';
}
D - AABCC
题意:找所有
a
2
b
c
2
<
=
n
(
a
<
b
<
c
)
a^2bc^2<=n(a<b<c)
a2bc2<=n(a<b<c)并且
a
,
b
,
c
a,b,c
a,b,c均为素数,
n
<
=
1
0
12
n<=10^{12}
n<=1012
思路:
a
2
b
c
2
<
=
n
a^2bc^2<=n
a2bc2<=n,因此
c
<
=
n
c<=\sqrt{n}
c<=n,因此只要枚举
[
2
,
1
0
6
]
[2,10^{6}]
[2,106]的素数即可,先枚举a,然后枚举c,然后二分找b的范围,
b
<
=
n
/
(
a
2
c
2
)
b<=n/(a^2c^2)
b<=n/(a2c2)
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int max_range = 1e6 + 10;
bool prime[max_range];
vector<ll> pm;
void pre_prime(){
for(int i = 2;i < max_range;i++)
{
if(!prime[i])
{
pm.push_back(i);
for(int j = 2;j*i < max_range;j++)
prime[i*j] = 1;
}
}
}
int main()
{
ll n;cin >> n;
ll ans = 0;
pre_prime();
int ma = pm.size();
for(int i = 0;i < ma;i++)//枚举a
{
if(n/pm[i]/pm[i]/pm[i+2]/pm[i+2]/pm[i+1] == 0)
break;
for(int j = i + 2;j < ma;j++){//枚举c
ll x = n/pm[i]/pm[i]/pm[j]/pm[j];
int aim = lower_bound(pm.begin(),pm.end(),x) - pm.begin();
if(pm[i]*pm[i]*pm[j]*pm[j]*pm[aim] > n)
aim--;
if(aim < i + 1)
break;
else
ans += min(aim - i,j - 1 - i);
}
}
cout << ans << endl;
}
思路:分解n为2、3、4、5、6,因为6会被分解为2和3,4会被分解为2,所以我们要枚举4和6的数量,确定了2、3、4、5、6的数量后,可能性就要加上
A
n
u
m
a
l
l
n
u
m
a
l
l
/
(
5
n
u
m
a
l
l
A
n
u
m
2
n
u
m
2
A
n
u
m
3
n
u
m
3
A
n
u
m
4
n
u
m
4
A
n
u
m
5
n
u
m
5
A
n
u
m
6
n
u
m
6
)
A^{num_{all}}_{num_{all}}/(5^{num_{all}}A^{num_2}_{num_2}A^{num_3}_{num_3}A^{num_4}_{num_4}A^{num_5}_{num_5}A^{num_6}_{num_6})
Anumallnumall/(5numallAnum2num2Anum3num3Anum4num4Anum5num5Anum6num6)