头像

Eric2020




离线:3个月前


活动打卡代码 AcWing 1161. 数字游戏

Eric2020
3个月前
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>

using namespace std;

int main()
{
    string s;
    int ans=0;
    cin>>s;
    for(int i=0;i<8;i++)
        if(s[i]=='1') ans++;
    cout<<ans;
}


活动打卡代码 AcWing 906. 区间分组

Eric2020
3个月前
#include <iostream>
#include <algorithm>
#include <queue>

using namespace std;

const int N=100010;
int n;

struct Range
{
    int l,r;
    bool operator<(const Range &W)const
    {
        return l<W.l;
    }
}range[N];

int main()
{
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        int l,r;
        scanf("%d%d",&l,&r);
        range[i]={l,r};
    }
    sort(range,range+n);
    priority_queue<int,vector<int>,greater<int>> heap;
    for(int i=0;i<n;i++)
    {
        auto r=range[i];
        if (heap.empty()||heap.top()>=r.l) 
            heap.push(r.r);
        else
        {
            heap.pop();
            heap.push(r.r);
        }
    }
    printf("%d\n",heap.size());
    return 0;
}



Eric2020
3个月前
#include <iostream>
#include <algorithm>

using namespace std;

const int N=100010;
int n;

struct Range
{
    int l,r;
    bool operator<(const Range &W)const
    {
        return r<W.r;
    }
}range[N];

int main()
{
    scanf("%d", &n);
    for(int i=0;i<n;i++) 
        scanf("%d%d",&range[i].l,&range[i].r);
    sort(range,range+n);
    int res=0,ed=-2e9;
    for(int i=0;i<n;i++)
        if(ed<range[i].l)
        {
            res++;
            ed=range[i].r;
        }
    printf("%d\n",res);
    return 0;
}


活动打卡代码 AcWing 905. 区间选点

Eric2020
3个月前
#include <iostream>
#include <algorithm>

using namespace std;

const int N=100010;
int n;

struct Range
{
    int l,r;
    bool operator<(const Range &W)const
    {
        return r<W.r;
    }
}range[N];
int main()
{
    scanf("%d", &n);
    for(int i=0;i<n;i++) 
        scanf("%d%d",&range[i].l,&range[i].r);
    sort(range,range + n);
    int res=0,ed=-2e9;
    for(int i=0;i<n;i++)
        if (range[i].l>ed)
        {
            res++;
            ed=range[i].r;
        }
    printf("%d\n", res);
    return 0;
}


新鲜事 原文

Eric2020
5个月前
新鲜事


活动打卡代码 AcWing 796. 子矩阵的和

Eric2020
6个月前
#include <iostream>
using namespace std;
int n,m,q;
int a[1010][1010],s[1010][1010];
int main()
{
    cin>>n>>m>>q;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            scanf("%d",&a[i][j]);
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)
            s[i][j]=s[i-1][j]+s[i][j-1]-s[i-1][j-1]+a[i][j];
    for(int i=0;i<q;i++)
    {
        int x1,y1,x2,y2;
        scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
        printf("%d\n",s[x2][y2]-s[x1-1][y2]-s[x2][y1-1]+s[x1-1][y1-1]);
    }
}


活动打卡代码 AcWing 795. 前缀和

Eric2020
6个月前
#include <iostream>

using namespace std;

const int N=100010;
int n,m;
int a[N],s[N];

int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++)
        scanf("%d",&a[i]);
    s[1]=a[1];
    for(int i=2;i<=n;i++)
        s[i]=s[i-1]+a[i];
    while(m--)
    {
        int l,r;
        scanf("%d%d",&l,&r);
        printf("%d\n",s[r]-s[l-1]);
    }
    return 0;
}


活动打卡代码 AcWing 794. 高精度除法

Eric2020
6个月前
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> div(vector<int> &A,int b,int &r)
{
    vector<int> C;
    r=0;
    for(int i=A.size()-1;i>=0;i--)
    {
        r=r*10+A[i];
        C.push_back(r/b);
        r%=b;
    }
    reverse(C.begin(),C.end());
    while(C.size()>1&&C.back()==0)
        C.pop_back();
    return C;
}

int main()
{
    string a;
    int b;
    cin>>a>>b;
    vector<int> A;
    for(int i=a.size()-1;i>=0;i--)
        A.push_back(a[i]-'0');
    int r;
    auto C=div(A,b,r);
    for(int i=C.size()-1;i>=0;i--)
        printf("%d",C[i]);
    cout<<endl<<r;
    return 0;
}


活动打卡代码 AcWing 793. 高精度乘法

Eric2020
6个月前
#include <iostream>
#include <vector>

using namespace std;

vector<int> mul(vector<int> &A,int b)
{
    vector<int> C;
    int t=0;
    for(int i=0;i<A.size()||t;i++)
    {
        if(i<A.size()) t+=A[i]*b;
        C.push_back(t%10);
        t/=10;
    }
    for(int i=C.size()-1;i>=0;i--)
        if(C[i]==0&&i) C.pop_back();
        else break;
    return C;
}

int main()
{
    string a;
    int b;
    cin>>a>>b;
    vector<int> A;
    for(int i=a.size()-1;i>=0;i--)
        A.push_back(a[i]-'0');
    auto C=mul(A,b);
    for(int i=C.size()-1;i>=0;i--)
        printf("%d",C[i]);
    return 0;
}


活动打卡代码 AcWing 792. 高精度减法

Eric2020
6个月前
#include <iostream>
#include <vector>

using namespace std;

bool cmp(vector<int> &A, vector<int> &B)
{
    if (A.size() != B.size()) return A.size() > B.size();

    for (int i = A.size() - 1; i >= 0; i -- )
        if (A[i] != B[i])
            return A[i] > B[i];

    return true;
}

vector<int> sub(vector<int> &A, vector<int> &B)
{
    vector<int> C;
    for (int i = 0, t = 0; i < A.size(); i ++ )
    {
        t = A[i] - t;
        if (i < B.size()) t -= B[i];
        C.push_back((t + 10) % 10);
        if (t < 0) t = 1;
        else t = 0;
    }

    while (C.size() > 1 && C.back() == 0) C.pop_back();
    return C;
}

int main()
{
    string a, b;
    vector<int> A, B;
    cin >> a >> b;
    for (int i = a.size() - 1; i >= 0; i -- ) A.push_back(a[i] - '0');
    for (int i = b.size() - 1; i >= 0; i -- ) B.push_back(b[i] - '0');

    vector<int> C;

    if (cmp(A, B)) C = sub(A, B);
    else C = sub(B, A), cout << '-';

    for (int i = C.size() - 1; i >= 0; i -- ) cout << C[i];
    cout << endl;

    return 0;
}