专栏首页AngelNIWinter Camp 1

Winter Camp 1

《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和字符串

用到二分+前端和,check()部分不算是太明白,贴上代码

#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 条评论
登录 后参与评论

相关文章

  • 排序算法-2

    AngelNH
  • 尺取法

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

    AngelNH
  • 高精度运算

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

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

    Angel_Kitty
  • 快速乘

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

    Ch_Zaqdt
  • 牛牛的Link Power II

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

    某些人
  • AtCoder Regular Contest 101 D - Median of Medians

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

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

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

    Angel_Kitty
  • 数学--数论--广义欧拉降幂(模板)

    风骨散人Chiam
  • Codeforces Round #633 (Div. 2) A ~~C

    用户7727433

扫码关注云+社区

领取腾讯云代金券