头像

无情的代码机器




离线:2天前



**vector<vector<int>> array**

____** 输入输出的问题**____
写给自己看的

https://bbs.csdn.net/topics/392144947

https://www.cnblogs.com/tyty-Somnuspoppy/p/9361821.html

array.resize(a);
https://cloud.tencent.com/developer/article/1537457

 for(int i=0;i<3;++i)
{
      for(int j=0;j<3;++j)
    {
        cout<<array[i][j];
    }
}

vector二维数组对于访问是没有问题的。

for(int i=0;i<3;++i)
{
    for(int j=0;j<3;++j)
    {
        int b;
        cin>>b;
        array[i].push_back(b);//对于第i个vector列依次赋值b
    }
}

vector 在使用push_back()时,vector中的第一层还是vector<int>在这之中再是int。




写给自己看的代码。
https://blog.csdn.net/wmy0217_/article/details/105315247

merge:
1.排序 vector(first先排序后排序second)
2.区间维护三种情况写两种

    if(ed<item.first)
            ...
    else ed=max(ed,item.second);

C++ 代码

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,l,r;
typedef pair<int,int> pii;
vector <pii>nums,ans;

void merge(vector<pii> &segs)
{
    int st= -2e9,ed= -2e9;
    sort(segs.begin(),segs.end());
    for(auto item:segs)
    {
        if(ed<item.first)
        {
            if(st!= -2e9)ans.push_back({st,ed});
            st=item.first,ed=item.second;
        }
        else ed=max(ed,item.second);

    }

    if(st!=-2e9)
    ans.push_back({st,ed});

}
int main()
{
    cin>>n;
    for(int i=0;i<n;i++) 
    {
        cin>>l>>r;
        nums.push_back({l,r});

    }

    merge(nums);
    cout<<ans.size()<<endl;
    return 0;

}



题目描述(写给自己看的)

有关差分概念的举例和分析。
https://blog.csdn.net/justidle/article/details/103761632
1.我们需要维护的数据是“相邻两个数之差”;
2.说明 a 区间加等差,相当于 p 区间加常数、端点单点修改。
也就是区间加自然是给 p_{[l+1, r]} 加上 d。

样例

输入样例:
6 3
1 2 2 1 2 1
1 3 1
3 5 1
1 6 1
输出样例:
3 4 5 3 4 2

算法(差分)

C++ 代码

#include<iostream>
using namespace std;

const int N = 10e6+10;
int a[N],b[N];

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++) b[i]=a[i]-a[i-1];
    while(m--)
    {
        int l,r,c;
        cin>>l>>r>>c;

        b[l]+=c;
        b[r+1]-=c;
    }

    for(int i=1;i<=n;i++) 
    {
        b[i]=b[i]+b[i-1];
        cout<<b[i]<<" ";
    }
    return 0;

}  




活动打卡代码 AcWing 89. a^b

无情的代码机器
2019-11-12 13:54
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~
#include<iostream>

using namespace std;
int main()
{
    int a,b,p;
    cin>>a>>b>>p;
    int all=1 %p;
    while(b)
    {
        if(b&1)all = all * 1ll *a %p;
        a = a* 1ll *a%p;

        b>>=1;
    }
    cout<<all<<endl;
    return 0;

}





活动打卡代码 AcWing 473. 标题统计

无情的代码机器
2019-10-26 15:57
#include <iostream>

using namespace std;

int main()
{
    char c;
    int s = 0;

    while (cin >> c) s ++ ;

    cout << s << endl;
    return 0;
}
//这里填你的代码^^
//注意代码要放在两组三个点之间,才可以正确显示代码高亮哦~