头像

垫底抽風

$$\color{black}{\texttt{L}}\color{red}{\texttt{egendary Grandmaster}}$$




离线:1天前


最近来访(18417)
用户头像
Tuhewa
用户头像
驰梦
用户头像
吃不月半的fcano
用户头像
LIUDurian
用户头像
w4676w
用户头像
清风飘扬
用户头像
zzq12138
用户头像
zg123
用户头像
Finn2009
用户头像
yxc的小迷妹
用户头像
谦言万语
用户头像
小镇刷题家
用户头像
抛出所有只为重生
用户头像
长夜未央
用户头像
Pokestar
用户头像
朝武芳乃
用户头像
姜子
用户头像
糯米团子
用户头像
scx_2012
用户头像
Gallium


算法1

看数据范围跑一遍 floyd ,最后两点依次找最大值即可。

参考文献

C++ 代码

#include<bits/stdc++.h>
using namespace std;
int d[101][101];
int main()
{
    memset(d,0x3f,sizeof(d));
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)cin>>d[i][j];
    for(int k=1;k<=n;k++)
        for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
    int ma=0;
    for(int i=1;i<=n;i++)
        for(int j=i+1;j<=n;j++)ma=max(ma,d[i][j]);
    cout<<ma;
}



新鲜事 原文

掉大分!掉大分!



#include<bits/stdc++.h>
using namespace std;
int a[100001],s[100001],mi[100001];
signed main()
{
    memset(mi,0x3f,sizeof(mi));
    int n;  
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i];
    for(int i=n;i>=1;i--){
        s[i]=s[i+1]+a[i];
        mi[i]=min(mi[i],a[i]);
    }
    for(int i=1;i<=n;i++)s[i]-=mi[i];
    double ma=0;
    for(int i=1,c=n;i<n-1;i++,c--)ma=max(ma,(double)(1.0*s[i]/(c-1)));
    for(int i=1,c=n;i<n-1;i++,c--)
        if(ma==(double)(1.0*s[i]/(c-1)))cout<<i<<'\n';
}



#include<bits/stdc++.h>
using namespace std;
int a[100001],s[100001];
signed main()
{
    int n,k,b;
    cin>>n>>k>>b;
    for(int i=1,x;i<=b;i++){
        cin>>x;
        a[x]=1;
    }
    for(int i=1;i<=n;i++)s[i]=s[i-1]+a[i];
    int mi=1e9;
    for(int i=k;i<=n;i++)
        mi=min(mi,s[i]-s[i-k+1]);
    cout<<mi;   
}


活动打卡代码 AcWing 3482. 大数运算

a=input()
b=input()
print(a+b)
print(a-b)
print(a*b)


活动打卡代码 AcWing 3497. 质数

垫底抽風
1个月前
#include<bits/stdc++.h>
using namespace std;
bool book[1000001];
int prime[100001];
int t=1;
void Prime(int x)
{
    memset(book,0,sizeof(book));
    for(int i=2;i<=x;i++){
        if(!book[i])prime[t++]=i;
        for(int j=1;prime[j]<=x/i;j++){
            book[prime[j]*i]=1;
            if(i%prime[j]==0)break;
        }
    }
}
int main()
{
    Prime(1000000);
    int n;
    while(cin>>n)cout<<prime[n]<<'\n';
}



垫底抽風
1个月前

算法1

蓝桥每日一题讲过筛质数,这里不做详细解释。

把质数一一列出来即可,值得一提的是,空间需要开大一点,因为第 10000 个质数是 104729。

参考文献

C++ 代码

#include<bits/stdc++.h>
using namespace std;
bool book[10000001];
int prime[100001];
int t=1;
void Prime(int x)
{
    memset(book,0,sizeof(book));
    for(int i=2;i<=x;i++){
        if(!book[i])prime[t++]=i;
        for(int j=1;prime[j]<=x/i;j++){
            book[prime[j]*i]=1;
            if(i%prime[j]==0)break;
        }
    }
}
int main()
{
    Prime(1000000);
    int n;
    while(cin>>n)cout<<prime[n]<<'\n';
}



活动打卡代码 AcWing 3498. 日期差值

垫底抽風
1个月前
#include<bits/stdc++.h>
using namespace std;
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//把每月的天数求出来
int day(int n)
{
    int y=n/10000;//年
    int m=n%10000/100;//月
    int d=n%10000%100;//日
    //
    a[2]=(y%4==0&&y%100!=0||y%400==0?29:28);//判断闰年
    while(m--)d+=a[m];//把每个月的天数相加
    //以上都是在累加今年的天数,下面给出从耶稣诞生日(公元一年)开始,一直到去年最后一天
    while(y--)d+=(y%4==0&&y%100!=0||y%400==0?366:365);//闰年366天,平年365天
    return d;
}
int main()
{
    int a,b;
    while(cin>>a>>b)cout<<abs(day(a)-day(b))+1<<endl;//由题所示“如果两个日期是连续的我们规定他们之间的天数为两天”,因此我们加一
}



垫底抽風
1个月前

算法1

手推一遍可以发现,越往后的字符串输出时越往前,其实就是反着输出一遍字符串,输出过的之后不输出即可。

参考文献

C++ 代码

#include<bits/stdc++.h>
using namespace std;
map<string,bool>mp;
string st[200001];
int main()
{
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)cin>>st[i];
    for(int i=n;i>=1;i--){
        if(!mp[st[i]])cout<<st[i]<<'\n';
        mp[st[i]]=1;
    }
}



活动打卡代码 AcWing 3425. 小白鼠排队

垫底抽風
1个月前

格式化写代码一次。

#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N = 101;
struct node{
    int x;
    string color;
}a[N];
bool cmp(node a,node b){
    return a.x > b.x;
}
int main()
{
    int n;
    cin >> n;
    for (int i = 1; i <= n; i ++ ){
        cin >> a[i].x >> a[i].color;
    }
    sort(a + 1, a + 1 + n, cmp);
    for (int i = 1; i <= n; i ++ ){
        cout << a[i].color << '\n';
    }
}