《Z的悲剧》

# A honoka和格点三角形

```#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const ll mod = 1000000007;
ll n,m;
int main()
{
cin>>n>>m;
ll a = (m-1)%mod*m%mod*(n-2)%mod*2%mod;
ll b = (m-2)%mod*m%mod*(n-1)%mod*2%mod;
ll c = (n-1)%mod*n%mod*(m-2)%mod*2%mod;
ll d = (n-2)%mod*n%mod*(m-1)%mod*2%mod;
//ll re1 = (m-2)%mod*(n-1)%mod*4%mod;
//ll re2 = (n-2)%mod*(m-1)%mod*4%mod;
//ll re = (re1+re2)%mod;
ll sum = (a+b+c+d)%mod;
//sum = (sum-re)%mod;
cout<<sum<<endl;
//cout<<(a%mod+b%mod+c%mod+d%mod-re1%mod-re2%mod)%mod<<endl;
system("pause");

return 0;
}```

# B kotori和bangdream

```#include<iostream>
#include<cstdlib>
using namespace std;
typedef long long ll;
int main()
{
//ios::sync_with_stdio(false);
//cin.tie(NULL);
//cout.tie(NULL);
double n,x,a,b;
cin>>n>>x>>a>>b;
double ans = a*x/100.0+b-b*x/100.0;
ans = ans * n;
printf("%.2f\n",ans);
system("pause");
return 0;

}```

# D hanayo和米饭

```#include<iostream>
#include<cstdlib>
#include<cstring>
using namespace std;
typedef long long ll;
ll n;
ll a[100001];
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin>>n;
//memset(a,0,sizeof(a));
for(ll i = 1;i<n;++i)
{
int x;
cin>>x;
a[x]++;
}
ll flag ;
for(ll i=1;i<=n;++i)
{
if(a[i]==0)
{
flag = i;
break;
}
}
cout<<flag<<endl;
//system("pause");
return 0;

}```

# E rin和快速迭代

```#include<iostream>
using namespace std;
typedef long long ll;
ll n;
ll count(ll n)
{
ll s = 1;
for(ll i =2;i*i <= n;++i)
{
if(n%i==0)
{
ll a = 0;
while(n%i==0)
{
n = n/i;
a++;
}
s = s*(a+1);
}
}
if(n>1) s = s * 2;
return s;
}
int main()
{
cin>>n;
ll num = 1;
while(count(n)!=2)
{
n = count(n);
num++;
}
cout<<num<<endl;
system("pause");
return 0;
}```

# G eli和字符串

```#include<iostream>
#include<cstdlib>
#include<string>
#include<algorithm>
using namespace std;
typedef long long ll;
#define INF 0x3f3f3f3f
ll n,k;

int main()
{
cin>>n>>k;
string s;
cin>>s;

int l,r,ans;
ans = INF;
int a[100]={0};
l = r = 0;
while(r<s.size())
{
a[s[r]-'a']++;
while(a[s[r]-'a']>=k)
{
ans = min(ans,r-l+1);

a[s[l]-'a']-=1;
l++;
}
r++;
}
if(ans==INF)
cout<<-1<<endl;
else
cout<<ans<<endl;

system("pause");
return 0;
}```

# H nozomi和字符串

```#include<bits/stdc++.h>
typedef long long ll;

using namespace std;
int a[200009];
int n,k;
bool check(int x)
{
for(int i=x;i<=n;i++)
{
int ans = a[i]-a[i-x];//求零的数量也就是操作次数
if(ans<=k||x-ans<=k)//如果0的数量比K小，那就在区间的右侧；
return 1;
}
return 0;//否则在区间左侧
}
int main()
{
cin >> n >> k;
string s;
cin>>s;
a[1] = s[0]-'0';
/*前缀和*/
for(int i=1;i<n;++i)
{
a[i+1]=a[i]+s[i]-'0';
//cout<<a[i]<<endl;
}
/*二分*/
int l = 1,r = n,mid;
while(l<=r)
{
mid = (l+r)>>1;
if(check(mid))
{
if(!check(mid+1))
break;
l = mid+1;
}
else
r = mid-1;
}
cout << mid <<endl;
system("pause");
return 0;
}```

0 条评论

• ### 尺取法

尺取法：顾名思义，像尺子一样取一段，借用挑战书上面的话说，尺取法通常是对数组保存一对下标，即所选取的区间的左右端点，然后根据实际情况不断地推进区间左右端点以得出...

• ### 51Nod 1632 B君的连通(递归，快速幂)

1632 B君的连通 基准时间限制：1 秒 空间限制：131072 KB 分值: 20 难度：3级算法题 B国拥有n个城市，其交通系统呈树状结构，即任意两个城市...

• ### 快速乘

时间复杂度为O(1)的两个数相乘结果超过long long取模的快速运算

时间限制：C/C++ 1秒，其他语言2秒 空间限制：C/C++ 262144K，其他语言524288K 64bit IO Format: %lld 题目描述 牛...

• ### AtCoder Regular Contest 101 D - Median of Medians

然后前缀和+树状数组来判断这个答案是否大于等于数 如果我们对于一个查询，如果小于这个数令为1，大于这个数领为-1 将所有前缀和放在树状数组中，就可以查询所有su...

• ### 51Nod 1004 n^n的末位数字(日常复习快速幂，莫名的有毒，卡mod值)

1004 n^n的末位数字 题目来源： Author Ignatius.L (Hdu 1061) 基准时间限制：1 秒 空间限制：131072 KB 分值: 5...