头像

那必须得是我了




在线 


最近来访(36)
用户头像
啦啦啦种太阳
用户头像
凌乱之风
用户头像
一纸缔约
用户头像
yxc
用户头像
罚坐侠
用户头像
ease
用户头像
周聪
用户头像
陌上花开Charlie
用户头像
hongk_bb
用户头像
Fcy
用户头像
wanghai673
用户头像
S搁浅S
用户头像
你该美丽中带刺
用户头像
karma_7
用户头像
唤醒
用户头像
芙兰朵露
用户头像
天郁闷
用户头像
不拿周赛牌不改名
用户头像
Eyoung
用户头像
ZYYYyy

活动打卡代码 AcWing 862. 三元组排序

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
struct Node
{
    int x;
    float y;
    string z;
    bool operator < (const Node &a) const
    {
        return x<a.x;
    }
};
int main()
{
    int n;
    cin>>n;
    vector<Node> v(n);
    for(int i=0;i<n;i++)
        cin>>v[i].x>>v[i].y>>v[i].z;
    sort(v.begin(),v.end());
    for(int i=0;i<n;i++)
        printf("%d %.2f %s\n",v[i].x,v[i].y,v[i].z.c_str());
    return 0;
}


活动打卡代码 AcWing 53. 最小的k个数

class Solution {
public:
    vector<int> getLeastNumbers_Solution(vector<int> input, int k) {
        sort(input.begin(), input.end());

        vector<int> res;
        for (int i = 0; i < k; i ++ ) res.push_back(input[i]);

        return res;
    }
};



class Solution {
public:
    vector<int> findNumbersWithSum(vector<int>& nums, int target) {
        unordered_set<int> S;
        for (auto x : nums)
        {
            if (S.count(target - x)) return {x, target - x};
            S.insert(x);
        }
    }
};



/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
 //解法一:用stack
class Solution {
public:
    vector<int> printListReversingly(ListNode* head) {
        vector<int> v;
        if(head==NULL)
            return v;
        stack<int> s;
        while(head)
        {
            s.push(head->val);
            head=head->next;
        }
        while(s.size()!=0)
        {
            v.push_back(s.top());
            s.pop();
        }
        return v;
    }
};
/*
//解法二:reverse vector
class Solution {
public:
    vector<int> printListReversingly(ListNode* head) {
        vector<int> res;
        while (head) {
            res.push_back(head->val);
            head = head->next;
        }
        // reverse(res.begin(), res.end());
        // return res;
        return vector<int>(res.rbegin(), res.rend());
    }
}




class Solution {
public:
    void reOrderArray(vector<int> &array) 
    {
        int l=0,r=array.size()-1;
        while(l<r)
        {
            while(l<r && array[l]%2==1)    l++;
            while(l<r && array[r]%2==0)    r--;
            if(l<r)swap(array[l],array[r]);
        }
    }
};



class Solution {
public:
    int getMissingNumber(vector<int>& nums) {
        if (nums.empty()) return 0;

        int l = 0, r = nums.size() - 1;
        while (l < r)
        {
            int mid = l + r >> 1;
            if (nums[mid] != mid) r = mid;
            else l = mid + 1;
        }
        if(nums[r]==r)  r++;
        return r;
    }
};




class Solution {
public:
    int getNumberOfK(vector<int>& nums, int k) {
        vector<int>::iterator it1 = lower_bound(nums.begin(), nums.end(), k);
        vector<int>::iterator it2 = upper_bound(nums.begin(), nums.end(), k);
        return it2-it1;
    }
};
/*
class Solution {
public:
    int getNumberOfK(vector<int>& nums , int k) {
        multiset<int> s;

        for(int x : nums) s.insert(x);

        return s.count(k);
    }
};
*/
/*
class Solution {
public:
    int getNumberOfK(vector<int>& nums , int k) {
        int cnt = 0;
        for(int x : nums)
            if(x == k)
                cnt++;
        return cnt;
    }
};
*/


活动打卡代码 AcWing 4496. 吃水果

#include<iostream>
using namespace std;

typedef long long LL;

const int maxn = 2005;
const int MOD = 998244353;
LL dp[maxn][maxn];
LL n,m,k;
int main()
{
    cin>>n>>m>>k;
    dp[1][0]=m;
    for(int i=2;i<=n;i++)
    {
        for(int j=0;j<i && j<= k;j++)
        {
            dp[i][j]=dp[i-1][j];
            if(j)   dp[i][j]=(dp[i][j]+dp[i-1][j-1]*(m-1))%MOD;
        }
    }
    cout<<dp[n][k]<<endl;
    return 0;
}


活动打卡代码 AcWing 898. 数字三角形

#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include <vector>
using namespace std;

#define io ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
const int maxn = 505;
const int INF = 1e9;

int num[maxn][maxn];
int dp[maxn][maxn];


int main()
{
    io;
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=i;j++)
            cin>>num[i][j];
    int ans=-INF;
    fill(dp[0],dp[0]+maxn*maxn,-INF);
    dp[1][1]=num[1][1];
    for(int i=2;i<=n;i++)
        for(int j=1;j<=i;j++)
            dp[i][j]=max(dp[i-1][j-1],dp[i-1][j])+num[i][j];
    for(int i=1;i<=n;i++)
        ans=max(ans,dp[n][i]);
    cout<<ans<<endl;
    return 0;
}


活动打卡代码 AcWing 827. 双链表

#include <iostream>

using namespace std;

const int N = 100010;

int m;
int e[N], l[N], r[N], idx;

// 在节点a的右边插入一个数x
void insert(int a, int x)
{
    e[idx] = x;
    l[idx] = a, r[idx] = r[a];
    l[r[a]] = idx, r[a] = idx ++ ;
}

// 删除节点a
void remove(int a)
{
    l[r[a]] = l[a];
    r[l[a]] = r[a];
}

int main()
{
    cin >> m;

    // 0是左端点,1是右端点
    r[0] = 1, l[1] = 0;
    idx = 2;

    while (m -- )
    {
        string op;
        cin >> op;
        int k, x;
        if (op == "L")
        {
            cin >> x;
            insert(0, x);
        }
        else if (op == "R")
        {
            cin >> x;
            insert(l[1], x);
        }
        else if (op == "D")
        {
            cin >> k;
            remove(k + 1);
        }
        else if (op == "IL")
        {
            cin >> k >> x;
            insert(l[k + 1], x);
        }
        else
        {
            cin >> k >> x;
            insert(k + 1, x);
        }
    }

    for (int i = r[0]; i != 1; i = r[i]) cout << e[i] << ' ';
    cout << endl;

    return 0;
}