头像

邹梓墨

HEAVEN(天堂组织)




离线:7小时前


最近来访(147)
用户头像
yi生守护你
用户头像
戒断反应
用户头像
白银飞
用户头像
AcWing2AK
用户头像
Shanjw
用户头像
emancipation
用户头像
AMDYES
用户头像
dancin
用户头像
好好吃饭ne
用户头像
wzy_
用户头像
ccj
用户头像
StarrySky_5
用户头像
宇哥我男神哟
用户头像
不得不说
用户头像
寻_0
用户头像
19873023052
用户头像
陈义
用户头像
反方向的钟
用户头像
R_U_OK
用户头像
aaabr1ck


C++ 代码

#include <bits/stdc++.h>
using namespace std;
const int N=2e5+10;
int n;
vector<int>cnt;//cnt存所有0所在的位置
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        int x;
        cin>>x;
        if(t[i]==0) cnt.push_back(i);//如果是0,则存储0的位置
    }
    int y=0;
    for(int i=1;i<=n;i++)
    {
        if((abs(i-cnt[y])>=abs(i-cnt[y+1])&&y+1<cnt.size())) y++;
        /*
        cnt[y] -->当前“认为”最近0的距离,可能不是
        cnt[y+1]->当前“认为”最近0的距离下一个0的位置
        abs(i-cnt[y]) -->当前“认为”最近0的距离到i的距离
        abs(i-cnt[y+1])->当前“认为”最近0的距离下一个0的位置到i的距离
        如果abs(i-cnt[y])大于abs(i-cnt[y+1]),代表当前“认为”最近0的距离到i的距离是有新的更新了,而它就是下一个0的位置(因为如果是前去的,则肯定会增加,如果是后面第两个,肯定也会更增加)所以y++
        */
        cout<<abs(i-cnt[y])<<' ';//输出i到最近0的距离
    }
    return 0;
}



#include <bits/stdc++.h>
using namespace std;
int n;
vector <int> cnt;
bool st[11];
void hh(int x)
{
    if(x==n+1)
    {
        for(int i=1;i<cnt.size();i++) cout<<cnt[i]<<' ';
        puts("");
        return ;
    }
    for(int i = 1; i <= n; i++)
    {
        if(!st[i])
        {
            cnt.push_back(i);
            st[i] = 1;
            hh(x+1);
            st[i] = 0;
            cnt.pop_back();
        }
    }
}
int main()
{
    cin>>n;
    cnt.push_back(0);
    hh(1);
    return 0;
}



#include <bits/stdc++.h>
using namespace std;
int n,m;
vector <int> cnt;
void hh(int x)
{
    if(cnt.size()>m||cnt.size() + (n - x+1) < m)
        return;
    if(x==n+1)
    {
        for(int i=0;i<cnt.size();i++) cout<<cnt[i]<<' ';
        puts("");
        return ;
    }
    cnt.push_back(x);
    hh(x+1);
    cnt.pop_back();
    hh(x+1);
    return ;
}
int main()
{
    cin>>n>>m;
    hh(1);
    return 0;
}



#include <bits/stdc++.h>
using namespace std;
int n;
vector <int> cnt;
void hh(int x)
{
    if(x==n+1)
    {
        for(int i=0;i<cnt.size();i++) cout<<cnt[i]<<' ';
        puts("");
        return ;
    }
    cnt.push_back(x);
    hh(x+1);
    cnt.pop_back();
    hh(x+1);
    return ;
}
int main()
{
    cin>>n;
    hh(1);
    return 0;
}


新鲜事 原文

秦诗语,我喜欢你


新鲜事 原文

推荐:https://www.acwing.com/blog/content/18148/


新鲜事 原文

推荐:https://www.acwing.com/blog/content/18148/


活动打卡代码 AcWing 125. 耍杂技的牛

#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n;
pair<int,int>cow[N];
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
    {
        int w,s;
        cin>>w>>s;
        cow[i]={w+s,w};
    }
    sort(cow,cow+n);
    int res=-2e9,sum=0;
    for(int i=0;i<n;i++)
    {
        int w=cow[i].second,s=cow[i].first-w;
        res=max(res,sum-s);
        sum+=w;
    }
    cout<<res;
    return 0;
}


活动打卡代码 AcWing 104. 货仓选址

#include <bits/stdc++.h>
using namespace std;
const int N=100010;
int n,t[N],res;
int main()
{
    cin>>n;
    for(int i=0;i<n;i++) cin>>t[i];
    sort(t,t+n);
    for(int i=0;i<n;i++) res+=abs(t[i]-t[n/2]);
    cout<<res;
    return 0;
}


活动打卡代码 AcWing 913. 排队打水

#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,t[N];
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++) cin>>t[i];
    sort(t+1,t+n+1);
    long long res=0;
    for(int i=1;i<=n;i++) res+=t[i]*(n-i);
    cout<<res;
    return 0;
}