头像

wuzgnm




离线:14小时前


活动打卡代码 AcWing 3227. 折点计数

wuzgnm
13天前
#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int n,a[N],cnt=0;
int main(){
    cin>>n;
    for(int i=1; i<=n; i++)cin>>a[i];
    for(int i=2; i<n; i++){
        if(a[i]>a[i-1]&&a[i]>a[i+1]||a[i]<a[i-1]&&a[i]<a[i+1])cnt++;
    }
    cout<<cnt;
    return 0;
}


活动打卡代码 AcWing 3215. 网络延时

wuzgnm
13天前
#include<bits/stdc++.h>
using namespace std;
const int N=20010;
int n,m,h[N],e[N],ne[N],idx,ans;
void add(int a,int b){
    e[idx]=b,ne[idx]=h[a],h[a]=idx++;
}
int dfs(int u){//求以u为根节点的距离最远的叶节点
    int d1=0,d2=0;
    for(int i=h[u]; ~i; i=ne[i]){
        int j=e[i];
        int d=dfs(j);
        if(d>d1)d2=d1,d1=d;
        else if(d>d2)d2=d;
    }
    ans=max(ans,d1+d2);
    return d1+1;
}
int main(){
    memset(h,-1,sizeof h);
    cin>>n>>m;
    for(int i=2;i<=n; i++){
        int x;
        cin>>x;
        add(x,i);
    }
    for(int i=1; i<=m; i++){
        int x;
        cin>>x;
        add(x,n+i);
    }
    dfs(1);
    cout<<ans;
    return 0;
}


活动打卡代码 AcWing 3232. 最大波动

wuzgnm
14天前

求10AC币!!!

#include<bits/stdc++.h>
using namespace std;
const int N=1010;
int n,a[N];
int main(){
    scanf("%d",&n);
    for(int i=0; i<n; i++)scanf("%d",&a[i]);
    int res=0;
    for(int i=1; i<n; i++)
        res=max(res,abs(a[i]-a[i-1]));
    printf("%lld",res);
    return 0;
}


活动打卡代码 AcWing 3205. 最优配餐

wuzgnm
14天前
#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
const int N=1010,M=0x3f3f3f3f;
int n,m,k,d;
int dist[N][N];
bool g[N][N];
queue<PII> q;
struct duck{
    int x,y,c;
}tg[N*N];
int bfs(){
    int dx[]={0,1,0,-1},dy[]={1,0,-1,0};
    while(q.size()){
        auto t=q.front();
        q.pop();
        for(int i=0; i<4; i++){
            int x=dx[i]+t.first,y=dy[i]+t.second;
            if(x<1||x>n||y<1||y>n||g[x][y])continue;
            if(dist[x][y]>dist[t.first][t.second]+1){
                dist[x][y]=dist[t.first][t.second]+1;
                q.push({x,y});
            }
        }
    }
}
int main(){
    memset(dist,0x3f,sizeof dist);
    scanf("%d%d%d%d",&n,&m,&k,&d);
    for(int i=0; i<m; i++){
        int x,y;
        scanf("%d%d",&x,&y);
        dist[x][y]=0;
        q.push({x,y});
    }
    for(int i=0; i<k; i++){
        scanf("%d%d%d",&tg[i].x,&tg[i].y,&tg[i].c);
    }
    for(int i=0; i<d; i++){
        int x,y;
        cin>>x>>y;
        g[x][y]=-1;
    }
    bfs();
    long long res=0;
    for(int i=0; i<k; i++)
        res+=dist[tg[i].x][tg[i].y]*tg[i].c;
    printf("%lld",res);
    return 0;
}


活动打卡代码 AcWing 3203. 画图

wuzgnm
15天前
#include<bits/stdc++.h>
using namespace std;
const int N=110;
bool g[N][N];
int n,x1,Y,x2,Y2;
int main(){
    cin>>n;
    while(n--){
        cin>>x1>>Y>>x2>>Y2;
        for(int i=x1; i<x2; i++)
            for(int j=Y; j<Y2; j++)
                g[i][j]=1;
    }
    int res=0;
    for(int i=0; i<N; i++)
        for(int j=0; j<N; j++)
            res+=g[i][j];
    cout<<res;
    return 0;
}



wuzgnm
17天前
#include <bits/stdc++.h>
const int N=1e5+10;
int n,hi,minE,dp[N];
int main(){
    scanf("%d", &n);
    for(int i=1; i<=n; i++)  scanf("%d", &dp[i]);
    for(int i=n; i> 0; i--)  minE = (dp[i] + minE + 1) >> 1;
    printf("%d", minE);
    return 0;
}


活动打卡代码 AcWing 458. 比例简化

wuzgnm
17天前
#include<bits/stdc++.h>
using namespace std;
int gcd(int a, int b){
    return b ? gcd(b, a % b) : a;
}
int main(){
    int A, B,L;
    cin>>A>>B>>L;
    int a,b;
    double delta=1e9;
    for (int i=1; i<=L; i ++)
        for (intj=1; j<=L; j++)
            if(gcd(i,j)==1){
                double x=i*1.0/j;
                double X=A*1.0/B;
                if (x>=X&&x-X<delta){
                    delta=x-X;
                    a=i,b=j;
                }
            }
    cout<<a<<' '<<b<<endl;
    return 0;
}


活动打卡代码 AcWing 1477. 拼写正确

wuzgnm
17天前
#include<bits/stdc++.h>
using namespace std;
string english[10] ={"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
int main(){
    string s;
    cin>>s;
    if(s=="0"){
        cout<<"zero";
        return 0;
    }
    int res=0;
    for(auto c : s)
        res += c - '0';
    vector<string> out;
    while(res){
        out.push_back(english[res % 10]);
        res=res/10;
    }
    for(int i = out.size() - 1; i >= 0; i--)
        cout << out[i] << " ";
    return 0;
}


活动打卡代码 AcWing 3208. Z字形扫描

wuzgnm
17天前
#include <bits/stdc++.h>
using namespace std;
const int N=500;
int a[N][N];
int main(){
    int n,x,y;
    cin>>n;
    for(int i=0; i<n; i++)
        for(int j=0; j<n; j++)
            cin>>a[i][j];
    x = 0;
    y = 0;
    for(int i=0;i<n;i++)
        if(i&1){
            for(int j=0; j<i; j++)
                cout<<a[x++][y--]<< " ";
            cout <<a[x++][y]<< " ";
        }
        else {
            for(int j=0; j<i; j++)
                cout<<a[x--][y++] << " ";
            cout<< a[x][y++] << " ";
        }
    if(n & 1)
        y--,x++;
    else
        y++,x--;
    for(int i=n-2; i>0; i--)
        if(i&1){
            for(int j=0;j<i;j++)
                cout<<a[x++][y--]<< " ";
            cout<<a[x][y++]<< " ";
        }
        else {
            for(int j=0; j<i; j++)
                cout<<a[x--][y++]<<" ";
            cout<<a[x++][y]<<" ";
        }
    if(n!=1)
        cout<<a[n-1][n-1]<<endl;
    return 0;
}


活动打卡代码 AcWing 148. 合并果子

wuzgnm
17天前
#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    priority_queue<int,vector<int>,greater<int>> heap;
    while(n--){
        int x;
        cin>>x;
        heap.push(x);

    }
    int res=0;
    while(heap.size()>1){
        int a=heap.top();heap.pop();
        int b=heap.top();heap.pop();
        res+=a+b;
        heap.push(a+b);
    }
    cout<<res<<endl;
    return 0;
}