头像

Kokaze




离线:11小时前


最近来访(2)
用户头像
五條淵
用户头像
Kokaze风


Kokaze
12小时前
#include<iostream>
using namespace std;
int lowbit(int x){
    return x&-x;
}
int main(){
    int n;
    cin>>n;
    while(n--){
        int x;
        cin>>x;
        int res=0;
        while(x){
            x-=lowbit(x);
            res++;
        }
        cout<<res<<' ';
    }
    return 0;
}



Kokaze
12小时前
#include<iostream>
using namespace std;
const int N = 100010;
int a[N],b[N];
int n,m,x;
int main(){
    cin>>n>>m>>x;
    for(int i = 0;i<n;i++)cin>>a[i];
    for(int j = 0;j < m;j++)cin>>b[j];
    for(int i=0,j=m-1;i<n;i++){
        while(a[i]+b[j]>x && j>0)j--;
        if(a[i]+b[j]==x)cout<<i<<' '<<j<<endl;
    }
    return 0;
}



Kokaze
12小时前
#include<iostream>
using namespace std;

const int N = 100010;
int a[N];
int s[N];
int n;
int main(){
    cin>>n;
    int res = 0;
    for(int i=0;i<n;i++)cin>>a[i];
    for(int i=0,j=0;i<n;i++){
        s[a[i]]++;
        while(s[a[i]]>1){
            s[a[j]]--;
            j++;
        }
        res = max(res,i-j+1);
    }
    cout<<res<<endl;
    return 0;
}


活动打卡代码 AcWing 798. 差分矩阵

Kokaze
1天前
#include<iostream>
using namespace std;
const int N = 1010;
int a[N][N],b[N][N];
void insert(int x1,int y1,int x2,int y2,int c){
    b[x1][y1]+=c;
    b[x2+1][y1]-=c;
    b[x1][y2+1]-=c;
    b[x2+1][y2+1]+=c;
}
int main(){
    int n,m,q;
    cin>>n>>m>>q;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>a[i][j];
        }
    }
    for(int i=1;i<=n;i++)
        for(int j=1;j<=m;j++)insert(i,j,i,j,a[i][j]);
    while(q--){
        int x1,y1,x2,y2,c;
        cin>>x1>>y1>>x2>>y2>>c;
        insert(x1,y1,x2,y2,c);
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            b[i][j] += b[i-1][j] + b[i][j-1] - b[i-1][j-1];
        }
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cout<<b[i][j]<<' ';
        }
        cout<<endl;
    }
}


活动打卡代码 AcWing 797. 差分

Kokaze
1天前
#include<iostream>
using namespace std;
const int N = 100010;
int a[N];
int b[N];
void insert(int l,int r,int c){
    b[l]+=c;
    b[r+1]-=c;
}
int main(){
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++)cin>>a[i];
    for(int i=1;i<=n;i++)insert(i,i,a[i]);
    while(m--){
        int l,r,c;
        cin>>l>>r>>c;
        insert(l,r,c);
    }
    for(int i=1;i<=n;i++)b[i]+=b[i-1];
    for(int i=1;i<=n;i++)cout<<b[i]<<' ';
    return 0;
}


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

Kokaze
1天前
#include<iostream>
using namespace std;
const int N = 1010;
int a[N][N];
int s[N][N];
int main(){
    int n,m,q;
    cin>>n>>m>>q;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>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];
    while(q--){
        int x1,x2,y1,y2;
        cin>>x1>>y1>>x2>>y2;
        cout<<s[x2][y2] - s[x1-1][y2] - s[x2][y1-1] + s[x1-1][y1-1]<<endl;
    }
    return 0;
}


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

Kokaze
1天前
#include<iostream>
using namespace std;
const int N = 100010;
int a[N];
int s[N];
int main(){
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++)cin>>a[i];
    s[0] = 0;
    for(int i=1;i<=n;i++)s[i] = s[i-1]+a[i];
    while(m--){
        int l,r;
        cin>>l>>r;
        cout<<s[r]-s[l-1]<<endl;
    }
    return 0;
}


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

Kokaze
1天前
#include<iostream>
#include<algorithm>
using namespace std;
vector<int> div(vector<int>&A,int b,int&t){
    t=0;
    vector<int>tmp;
    for(int i=A.size()-1;i>=0;i--){
        t = t*10 + A[i];
        tmp.push_back(t/b);
        t%=b;
    }

    reverse(tmp.begin(),tmp.end());
    while(tmp.size()>1 && tmp.back()==0)tmp.pop_back();
    return tmp;
}
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 c;
    auto d = div(A,b,c);
    for(int i=d.size()-1;i>=0;i--)cout<<d[i];
    cout<<endl;
    cout<<c;
    return 0;
}


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

Kokaze
1天前
#include<iostream>
#include<vector>
using namespace std;
vector<int> mult(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;
    }
    while(c.size()>1 && c.back()==0)c.pop_back();
    return c;
}

int main(){
    string s1;
    int b;
    cin>>s1>>b;
    vector<int>a;
    for(int i=s1.size()-1;i>=0;i--)a.push_back(s1[i]-'0');
    auto c = mult(a,b);
    for(int i=c.size()-1;i>=0;i--)cout<<c[i];
    return 0;
}


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

Kokaze
2天前
#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 s1,s2;
    cin>>s1>>s2;
    vector<int> a,b;
    for(int i=s1.size()-1;i>=0;i--)a.push_back(s1[i]-'0');
    for(int i=s2.size()-1;i>=0;i--)b.push_back(s2[i]-'0');
    if(cmp(a,b)){
        auto c = sub(a,b);
        for(int i=c.size()-1;i>=0;i--)cout<<c[i];
    }
    else{
        auto c = sub(b,a);
        cout<<'-';
        for(int i=c.size()-1;i>=0;i--)cout<<c[i];
    }
    return 0;
}