1.27补题 回训练营

E 智乃的小球

题目描述

 在一条无限长的水平直线上,有 n 个小球,每个小球的质量相同,体积可以忽略不计。这些小球初始时位于直线上的不同位置,并且每个小球有一个初始速度,速度为 -1 m/s 或 1 m/s。速度为 -1 m/s 表示小球向左运动,速度为 1 m/s 表示小球向右运动。

当两个小球相向而行并发生碰撞时,它们会发生完全弹性碰撞,即交换速度。现在,你需要编写一个程序来判断,在足够长的时间后,是否会发生第 k 对小球的碰撞,以及如果会发生,碰撞将在何时发生。

输入描述

 第一行包含两个正整数 n 和 k,分别表示小球的个数和需要判断的第 k 对碰撞。 接下来 n 行,每行包含两个整数 pi 和 vi,分别表示第 i 个小球的初始位置和速度。

输出描述

 如果会发生第 k 对碰撞,输出 “Yes”,并在下一行输出发生碰撞的时间,保留六位小数;如果不会发生第 k 对碰撞,输出 “No”。

示例输入

3 2
0 1
2 -1
4 1

示例输出

Yes
2.000000

解释:在这个例子中,第 1 和第 2 个小球在 t=1 时发生碰撞,第 2 和第 3 个小球在 t=2 时发生碰撞。因此,第 2 对碰撞发生的时间是 2 秒。

注意:由于实数的计算存在误差,当你的答案与标准答案的差的绝对值除以标准答案的绝对值的最大值不超过 10^-6 时,你的答案将被视为正确。


思路

把碰撞当相遇!!!

  1. 输入处理:读取小球的个数 n 和需要判断的碰撞次数 k,然后读取每个小球的初始位置和速度。

  2. 分类小球:根据小球的初始速度,将小球分为两组,一组向右运动,一组向左运动。

  3. 计算碰撞次数:对于每个向右运动的小球,计算它会在何时与每个向左运动的小球碰撞。我们可以通过比较它们的位置和速度来确定碰撞时间。

  4. 二分查找:由于碰撞时间随时间增加而单调增加,我们可以使用二分查找来确定第 k 次碰撞发生的时间。


代码

#include <bits/stdc++.h>
#define int long long
using namespace std;
int n;
int a, b;
vector<int> c, d;
signed main()
{
    cin >> a >> b;
    for (int i = 0; i < a; i++)
    {
        int e, f;
        cin >> e >> f;
        if (f == 1)
        {
            c.push_back(e);
        }
        else
        {
            d.push_back(e);
        }
    }
    sort(c.begin(), c.end());
    sort(d.begin(), d.end());
    int g = 0;
    for (int q : c)
    {
        auto it = upper_bound(d.begin(), d.end(), q);
        g += d.end() - it;
    }
    if (g < b)
    {
        cout << "No" << "\n";
        return 0;
    }
    double l = 0, h = 1e17;
    double m;
    while (h - l > 1e-7)
    {
        m = (l + h) / 2;
        int cnt = 0;
        for (int q : c)
        {
            double qq = q + 2 * m;
            auto ww = upper_bound(d.begin(), d.end(), qq);
            cnt += ww - lower_bound(d.begin(), d.end(), q + 1);
        }
        if (cnt >= b)
        {
            h = m;
        }
        else
        {
            l = m;
        }
    }
    cout << "Yes" << "\n";
    cout << fixed << setprecision(6) << h << "\n";
    return 0;
}

G 智乃与模数 

题目描述

 给定一个正整数 n,对于所有不大于 n 的正整数 i,计算 n 对 i 取余的结果,并将这些结果降序排序形成一个新的序列 a。现在,你需要计算这个序列 a 中前 k 项的和。

输入格式

 输入包含一行,有两个正整数 n 和 k,其中 1 ≤ k ≤ n ≤ 10^9。

输出格式

 输出一个整数,表示序列 a 中前 k 项的和。

示例输入

 10 5

示例输出

 12

解释: 当 n = 10 时,计算 n 对所有不大于 10 的正整数取余的结果,并降序排序得到的序列为 {4, 3, 2, 2, 1, 1, 0, 0, 0, 0}。序列中前 5 项的和为 4 + 3 + 2 + 2 + 1 = 12。

注意: 由于 n 的范围可能非常大,直接计算所有取余结果并排序可能会导致时间复杂度过高,因此需要考虑更高效的算法来解决这个问题。

思路

代码

#include <iostream>
#include <cmath>
#include <algorithm>
#define int long long
using namespace std;

int n, k;

void solve() {
    cin >> n >> k;
    int l = 0, r = 1e9 + 1, kc = 0, val = 0;
    while (l <= r) {
        int m = (l + r) >> 1;
        int cnt = 0;
        for (int i = 1, j; i <= n; i = j + 1) {
            j = n / (n / i);
            int a = n - i * (n / i);
            if (a < m) continue;
            cnt += min(j - i + 1, (a - m) / (n / i) + 1);
        }
        if (cnt >= k) l = m + 1;
        else {
            kc = cnt;
            val = m;
            r = m - 1;
        }
    }
    int ans = (k - kc) * (val - 1);
    for (int i = 1, j; i <= n; i = j + 1) {
        j = n / (n / i);
        int a = n - i * (n / i);
        int p = n / i;
        if (a < val) continue;
        int len = min((a - val) / p + 1, j - i + 1);
        ans += (2 * a - p * (len - 1)) * len / 2;
    }
    cout << ans << '\n';
}

signed main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int t;
    cin >> t;
    while (t--) {
        solve();
    }
    return 0;
}

K 智乃的逆序数

思路

代码 

#include <bits/stdc++.h>
using namespace std;
int n, k;
vector<pair<int, int>> a;
vector<vector<int>> v;
int calc()
{
    int ret = 0;
    for (int i = 0; i < a.size(); ++i)
    {
        for (int j = i + 1; j < a.size(); ++j)
        {
            if (a[i] > a[j])++ret;
        }
    }
    return ret;
}

void bsort()
{
    for (int i = 0; i < a.size(); ++i)
    {
        for (int j = 0; j + 1 < a.size(); ++j)
        {
            if (a[j].first == a[j + 1].first)continue;
            if (k > 0 && a[j].second < a[j + 1].second)
            {
                swap(a[j], a[j + 1]);
                --k;
            }
        }
    }
}

int main()
{
    scanf("%d %d", &n, &k);
    v.resize(n);
    for (int i = 0; i < n; ++i)
    {
        int l;
        scanf("%d", &l);
        for (int j = 0; j < l; ++j)
        {
            int x;
            scanf("%d", &x);
            v[i].push_back(x);
        }
    }
    sort(v.begin(), v.end(), [](const vector<int> &A, const vector<int> &B)
    {
        return A[0] < B[0];
    });
    for (int i = 0; i < n; ++i)
    {
        for (auto &j: v[i])
        {
            a.emplace_back(i, j);
        }
    }
    k -= calc();
    if (k < 0)
    {
        printf("No");
        return 0;
    }
    bsort();
    if (k > 0)
    {
        printf("No");
        return 0;
    }
    printf("Yes\n");
    for (int i = 0; i < a.size(); ++i)
    {
        printf("%d%c", a[i].second, " \n"[i + 1 == a.size()]);
    }
    return 0;
}

D 智乃的Notepad(Hard version) 

 链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

示例1

输入

3 3 nowcoder nowdays now 1 3 1 2 3 3

3 3
nowcoder
nowdays
now
1 3
1 2
3 3

输出

16 16 3

16
16
3

示例2

输入

4 1 nowcoder nowdays days coder 1 4

4 1
nowcoder
nowdays
days
coder
1 4

输出

34

34

思路

 

代码

#include<bits/stdc++.h>
using namespace std;
// #define debug(x) cout<<"[debug]"#x<<"="<<x<<endl
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pii;
const ld eps=1e-8;
const int INF=0x3f3f3f3f;
const ll INFF=0x3f3f3f3f3f3f3f3f;
#ifndef ONLINE_JUDGE
#define debug(...)
#include<debug>
#else
#define debug(...)
#endif
const int N=100005,M=1000006;
struct Node
{
    int l,r;
    int maxi;
}tr[4*N];
string s[N];
void pushup(Node &root,Node &left,Node &right)//Todo
{
    root.maxi=max(left.maxi,right.maxi);
}
void pushup(int u)
{
    pushup(tr[u],tr[u<<1],tr[u<<1|1]);
}
void build(int u,int l,int r)
{
    tr[u]={l,r};
    if(l==r)//Todo
    {
        tr[u].maxi=s[l].size();
    }
    else
    {
        int mid=l+r>>1;
        build(u<<1,l,mid);
        build(u<<1|1,mid+1,r);
        pushup(u);
    }
}
void modify(int u,int l,int r,int c)
{
    if(tr[u].l>=l&&tr[u].r<=r)//Todo
    {
        tr[u].maxi+=c;
        return ;
    }
    int mid=tr[u].l+tr[u].r>>1;
    if(l<=mid) modify(u<<1,l,r,c);
    if(r>mid) modify(u<<1|1,l,r,c);
    pushup(u);
}
Node query(int u,int l,int r)
{
    if(tr[u].l>=l&&tr[u].r<=r)//Todo
    {
        return tr[u];
    }
    int mid=tr[u].l+tr[u].r>>1;
    if(r<=mid) return query(u<<1,l,r);
    else if(l>mid) return query(u<<1|1,l,r);
    else
    {
        Node res;
        Node left=query(u<<1,l,r);
        Node right=query(u<<1|1,l,r);
        pushup(res,left,right);
        return res;
    }
}
typedef unsigned long long ull;
int qry_max[N];
int qry_num[N];
tuple<int,int,int> q[N];
int tr2[M];
int lowbit(int x)
{
    return x&-x;
}
int query(int x)
{
    int res=0;
    while(x)
    {
        res+=tr2[x];
        x-=lowbit(x);
    }
    return res;
}
void add(int x,int c)
{
    while(x<M)
    {
        tr2[x]+=c;
        x+=lowbit(x);
    }
    return ;
}
const int P=131;
int pos[M];
const ll mod=1e13+7;
int main()
{
    int n,m;
    scanf("%d%d",&n,&m);
    vector<pair<ull,char>> all;
    for(int i=1;i<=n;i++)
    {
        cin>>s[i];
        ull hs=0;
        for(int j=0;j<s[i].size();j++)
        {
            hs*=P;
            hs+=s[i][j]+j*100;
            all.push_back({hs,s[i][j]});
        }
    }
    sort(all.begin(),all.end());
    all.erase(unique(all.begin(),all.end()),all.end());
    build(1,1,n);
    for(int i=1;i<=m;i++)
    {
        int l,r;
        scanf("%d%d",&l,&r);
        debug(l,r);
        q[i]={r,l,i};
        qry_max[i]=query(1,l,r).maxi;
    }

    sort(q+1,q+m+1);
    int idx=0;
    for(int i=1;i<=m;i++)
    {
        auto [r,l,id]=q[i];
        while(idx<r)
        {
            idx++;
            ll hs=0;
            for(int i=0;i<s[idx].size();i++)
            {
                hs*=P;
                hs+=s[idx][i]+i*100;
                int x=(lower_bound(all.begin(),all.end(),(pair<ull,char>){hs,s[idx][i]})-all.begin())+1;
                if(pos[x])
                {
                    add(pos[x],-1);
                }
                pos[x]=idx;
                add(pos[x],1);
            }
        }
        qry_num[id]=query(r)-query(l-1);
    }
    for(int i=1;i<=m;i++)
    {
        debug(qry_num[i],qry_max[i]);
        int res=qry_num[i]*2-qry_max[i];
        printf("%d\n",res);
    }
}

 H 智乃与黑白树

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

示例1

输入

5 bwbwb 1 2 2 5 4 1 3 1

5
bwbwb
1 2
2 5
4 1
3 1

输出

3 1 6 0 0 4 0 6

3 1
6 0
0 4
0 6

思路

 

代码

#include<bits/stdc++.h>
using namespace std;
const int MAXN = 100005;
struct dp_node
{
    long long dpb, dpw, sb, sw, val;
};
dp_node dp[MAXN];
void init_b(int root)
{
    memset(&dp[root], 0, sizeof(dp_node));
    dp[root].sb = 1;
}
void init_w(int root)
{
    memset(&dp[root], 0, sizeof(dp_node));
    dp[root].sw = 1;
}
void link(int root1, int root2)
{
    dp[root1].val += dp[root2].val +
                     dp[root1].dpb * dp[root2].sw +
                     dp[root1].dpw * dp[root2].sb +
                     dp[root1].sw * (dp[root2].dpb + dp[root2].sb) +
                     dp[root1].sb * (dp[root2].dpw + dp[root2].sw);

    dp[root1].dpw += dp[root2].dpw + dp[root2].sw;
    dp[root1].dpb += dp[root2].dpb + dp[root2].sb;

    dp[root1].sb += dp[root2].sb;
    dp[root1].sw += dp[root2].sw;

}

void cut(int root1, int root2)
{
    dp[root1].sw -= dp[root2].sw;
    dp[root1].sb -= dp[root2].sb;

    dp[root1].dpb -= dp[root2].dpb + dp[root2].sb;
    dp[root1].dpw -= dp[root2].dpw + dp[root2].sw;

    dp[root1].val -= dp[root2].val +
                     dp[root1].dpb * dp[root2].sw +
                     dp[root1].dpw * dp[root2].sb +
                     dp[root1].sw * (dp[root2].dpb + dp[root2].sb) +
                     dp[root1].sb * (dp[root2].dpw + dp[root2].sw);
}
vector<int> G[MAXN];
map<pair<int, int>, int> id;
int n;
pair<long long, long long> ans[MAXN];
char s[MAXN];

void dfs(int x, int fa)
{
    if (s[x] == 'b')init_b(x);
    else init_w(x);

    for (auto &i: G[x])
    {
        if (i == fa)continue;
        dfs(i, x);
        link(x, i);
    }
}
void dfs2(int x, int fa)
{
    for (auto &i: G[x])
    {
        if (i == fa)continue;
        cut(x, i);
        if (id.find(make_pair(x, i)) != id.end())
        {
            ans[id[make_pair(x, i)]] = make_pair(dp[x].val, dp[i].val);
        }
        if (id.find(make_pair(i, x)) != id.end())
        {
            ans[id[make_pair(i, x)]] = make_pair(dp[i].val, dp[x].val);
        }
        link(i, x);
        dfs2(i, x);
        cut(i, x);
        link(x, i);
    }
}
int main()
{
    scanf("%d", &n);
    scanf("%s", s + 1);
    for (int i = 1; i < n; ++i)
    {
        int u, v;
        scanf("%d %d", &u, &v);
        G[u].push_back(v);
        G[v].push_back(u);
        id[make_pair(u, v)] = i;
    }
    dfs(1, 0);
    dfs2(1, 0);
    for (int i = 1; i < n; ++i)
    {
        printf("%lld %lld\n", ans[i].first, ans[i].second);
    }
    return 0;
}

 J 智乃画二叉树

 链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

输入描述


输出描述


示例1

输入

6 3 6 5 -1 -1 -1 2 1 3 -1 -1 -1 -1

6 3
6 5
-1 -1
-1 2
1 3
-1 -1
-1 -1

输出

************************ * __ * * /4 \ * * \__/ * * / \ * * / \ * * / \ * * __/ \__ * * /1 \ /3 \ * * \__/ \__/ * * __/ \__ \__ * */6 \ /5 \ /2 \* *\__/ \__/ \__/* ************************

************************
*          __          *
*         /4 \         *
*         \__/         *
*         /  \         *
*        /    \        *
*       /      \       *
*    __/        \__    *
*   /1 \        /3 \   *
*   \__/        \__/   *
* __/  \__         \__ *
*/6 \  /5 \        /2 \*
*\__/  \__/        \__/*
************************

思路

代码

#include<bits/stdc++.h>
using namespace std;
using ll=long long;
const int N=3010;
char g[N][N];
int l[N],r[N];
int edge[110];
void solved(){
    int n,k;
    cin>>n>>k;
    memset(g,' ',sizeof g);

    int root=-1;
    map<int,int>mp;
    for(int i=1;i<=n;i++){
    	int a,b;
    	cin>>a>>b;
    	l[i]=a;
    	r[i]=b;
    	mp[a]=mp[b]=1;
    }

    for(int i=1;i<=n;i++){
    	if(!mp[i]){
    		root=i;
    		break;
    	}
    }
    edge[0]=1;
    for(int i=1,dd=3;i<=9;i++){
        edge[i]=edge[i-1]+dd;
        dd*=2;
    }
    int nn=1000,mm=1000;
    auto drawNode=[&](int x,int y,int num){
        g[x-1][y]=g[x-1][y+1]='_';
        g[x][y-1]='/';
        if(num<10)g[x][y]=num+'0';
        else g[x][y+1]='0'+num%10,g[x][y]='0'+num/10;

        g[x][y+2]='\\';
        g[x+1][y-1]='\\';
        g[x+1][y+2]='/';
        g[x+1][y]=g[x+1][y+1]='_'; 
    };
    auto dfs=[&](auto&self,int u,int x,int y,int depth)->void{
        if(u==-1)return;
        drawNode(x,y,u);
        if(l[u]!=-1){
            int xx=x+2,yy=y-1;
            for(int kk=0;kk<edge[depth];kk++){
                g[xx][yy]='/';
                xx++,yy--;
            }

            self(self,l[u],xx,yy-1,depth-1);
        }

        if(r[u]!=-1){
            int xx=x+2,yy=y+2;
            for(int kk=0;kk<edge[depth];kk++){
                g[xx][yy]='\\';
                xx++,yy++;
            }
            self(self,r[u],xx,yy,depth-1);
        }

    };
    dfs(dfs,root,1003,1003,k-2);
    int left=0,right=0,up=0,down=0;
    for(int i=0;i<N-1;i++){
        bool ok=false;
        for(int j=0;j<N-1;j++){
            if(g[j][i+1]!=' '){
                left=i;
                ok=true;
                break;
            }
        }
        if(ok)break;
    }
    for(int i=N-1;i>=1;i--){
        bool ok=false;
        for(int j=0;j<N-1;j++){
            if(g[j][i-1]!=' '){
                right=i;
                ok=true;
                break;
            }
        }
        if(ok)break;    
    }

    for(int i=0;i<N-1;i++){
        bool ok=false;
        for(int j=0;j<N-1;j++){
            if(g[i][j+1]!=' '){
                up=i;
                ok=true;
                break;
            }
        }
        if(ok)break;
    }

    for(int i=N-1;i>=1;i--){
        bool ok=false;
        for(int j=0;j<N-1;j++){
            if(g[i][j-1]!=' '){
                down=i;
                ok=true;
                break;
            }
        }
        if(ok)break;    
    }

    for(int i=1;i<N;i++)g[i][left]=g[i][right]=g[up-1][i]=g[down+1][i]='*';
    // cout<<left<<' '<<right<<"\n";
    for(int i=up-1;i<=down+1;i++){
        for(int j=left;j<=right;j++){
            cout<<g[i][j];
        }
        cout<<"\n";
    }

}
signed main(){
    ios::sync_with_stdio(false);cin.tie(0);
    int T=1;
    // cin>>T;
    while(T--)
        solved();
    
    return 0;
}

 I 智乃的兔子跳

链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网

示例1

输入

9 1 2 3 4 5 6 7 8 9

9
1 2 3 4 5 6 7 8 9

输出

1 2

1 2

示例2

输入

5 10 80 17 73 1

5
10 80 17 73 1

输出

3 7

3 7

备注:

兔子一开始就在胡萝卜的坐标也能得到分数

思路

代码 

#include<bits/stdc++.h>
#define int long long
#define endl "\n"
const int MAXN = 1e5+10;
#define PII pair<int, int>
using namespace std;
void IOS(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
}
int n;
int a[MAXN];
inline int randint(int min, int max){
    random_device rd;
    mt19937 gen(rd());
    uniform_int_distribution<int>dis(min, max);
    return dis(gen);
}
int maxcnt;
void solve(int &p, int &k){
    int l = randint(1, n);
    int r = randint(1, n);
    while(l == r) r = randint(1, n);
    int t = abs(a[l] - a[r]);
    if(t == 1) return ;
    for(int i = 2; i * i <= t; i++){
        if(t % i == 0){
            while(t % i == 0) t /= i;
            int cnt = 0;
            for(int j = 1; j <= n; j++){
                if((a[l] - a[j]) % i == 0) cnt++;
            }
            if(cnt > maxcnt){
                maxcnt = cnt;
                p = a[l]%i;
                k = i;
            }
        }
    }
    if(t != 1){
        int cnt = 0;
        for(int j = 1; j <= n; j++){
            if((a[l] - a[j]) % t == 0) cnt++;
        }
        if(cnt > maxcnt){
            maxcnt = cnt;
            p = a[l]%t;
            k = t;
        }
    }
}
signed main(){
    IOS();
    cin>>n;
    for(int i = 1; i <= n; i++) cin>>a[i];
    int p = a[0], k = 2;
    if(n == 1){
        cout<<a[1]%2<<" "<<2<<endl;
        return 0;
    }
    int T = 100;
    while(T--){
        solve(p, k);
    }
    cout<<p<<" "<<k<<endl;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/961578.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot 实现文件上传和下载

文章目录 Spring Boot 实现文件上传和下载一、引言二、文件上传1、配置Spring Boot项目2、创建文件上传控制器3、配置文件上传大小限制 三、文件下载1、创建文件下载控制器 四、使用示例1、文件上传2、文件下载 五、总结 Spring Boot 实现文件上传和下载 一、引言 在现代Web应…

CTFSHOW-WEB入门-命令执行39-53

题目&#xff1a;web 39 题目&#xff1a;解题思路&#xff1a;分析代码可以知道题目要求get一个c的参数&#xff0c;并且过滤了flag&#xff0c;大小写均过滤&#xff0c;于是可以想到使用&#xff1f;或者*通配符绕过。这里有include函数&#xff0c;由于include是个漏洞函数…

OpenCSG月度更新2025.1

1月的OpenCSG取得了一些亮眼的成绩 在2025年1月&#xff0c;OpenCSG在产品和社区方面继续取得了显著进展。产品方面&#xff0c;推出了AutoHub浏览器自动化助手&#xff0c;帮助用户提升浏览体验&#xff1b;CSGHub企业版功能全面升级&#xff0c;现已开放试用申请&#xff0c…

HTML(快速入门)

欢迎大家来到我的博客~欢迎大家对我的博客提出指导&#xff0c;有错误的地方会改进的哦~点击这里了解更多内容 目录 一、前言二、HTML基础2.1 什么是HTML?2.2 认识HTML标签2.2.1 HTML标签当中的基本结构2.2.2 标签层次结构 2.3 HTML常见标签2.3.1 标题标签2.3.2 段落标签2.3.3…

二叉树-堆(补充)

二叉树-堆 1.二叉树的基本特性2.堆2.1.堆的基本概念2.2.堆的实现2.2.1.基本结构2.2.2.堆的初始化2.2.3.堆的销毁2.2.4.堆的插入2.2.5.取出堆顶的数据2.2.6.堆的删除2.2.7.堆的判空2.2.8.堆的数据个数2.2.9.交换2.2.10.打印堆数据2.2.11.堆的创建2.2.12.堆排序2.2.13.完整代码 3…

JVM01_概述、跨平台原理、分类、三大商业虚拟机

①. 什么是JVM&#xff1f; ①. JVM 是 java虚拟机&#xff0c;是用来执行java字节码(二进制的形式)的虚拟计算机 ②. jvm是运行在操作系统之上的&#xff0c;与硬件没有任何关系 ②. Java的跨平台及原理 ①. 跨平台&#xff1a;由Java编写的程序可以在不同的操作系统上运行&am…

实现基础的shell程序

1. 实现一个基础的 shell 程序&#xff0c;主要完成两个命令的功能 cp 和 ls 1.1.1. cp 命令主要实现&#xff1a; ⽂件复制⽬录复制 1.1.2. ls 命令主要实现&#xff1a; ls -l 命令的功能 1.1. 在框架设计上&#xff0c;采⽤模块化设计思想&#xff0c;并具备⼀定的可扩…

idea修改模块名导致程序编译出错

本文简单描述分别用Idea菜单、pom.xml文件管理项目模块module 踩过的坑&#xff1a; 通过idea菜单创建模块&#xff0c;并用idea菜单修改模块名&#xff0c;结构程序编译报错&#xff0c;出错的代码莫名奇妙。双击maven弹窗clean时&#xff0c;还是报错。因为模块是新建的&am…

C27.【C++ Cont】时间、空间限制和STL库的简单了解

&#x1f9e8;&#x1f9e8;&#x1f9e8;&#x1f9e8;&#x1f9e8;&#x1f9e8;&#x1f9e8;&#x1f9e8;&#x1f9e8;春节篇&#x1f9e8;&#x1f9e8;&#x1f9e8;&#x1f9e8;&#x1f9e8;&#x1f9e8;&#x1f9e8;&#x1f9e8;&#x1f9e8; 目录 1.竞赛中的…

ResNet 残差网络

目录 网络结构 残差块&#xff08;Residual Block&#xff09; ResNet网络结构示意图 残差块&#xff08;Residual Block&#xff09;细节 基本残差块&#xff08;ResNet-18/34&#xff09; Bottleneck残差块&#xff08;ResNet-50/101/152&#xff09; 残差连接类型对比 变体网…

组件框架漏洞

一.基础概念 1.组件 定义&#xff1a;组件是软件开发中具有特定功能或特性的可重用部件或模块&#xff0c;能独立使用或集成到更大系统。 类型 前端 UI 组件&#xff1a;像按钮、下拉菜单、导航栏等&#xff0c;负责构建用户界面&#xff0c;提升用户交互体验。例如在电商 AP…

电脑无法开机,重装系统后没有驱动且驱动安装失败

电脑无法开机&#xff0c;重装系统后没有驱动且驱动安装失败 前几天电脑突然坏了&#xff0c;电脑卡住后&#xff0c;强制关机&#xff0c;再开机后开机马上就关机。尝试无数次开机后失败&#xff0c;进入BIOS界面&#xff0c;发现已经没有Windows系统了。重新安装系统后&…

NLP自然语言处理通识

目录 ELMO 一、ELMo的核心设计理念 1. 静态词向量的局限性 2. 动态上下文嵌入的核心思想 3. 层次化特征提取 二、ELMo的模型结构与技术逻辑 1. 双向语言模型&#xff08;BiLM&#xff09; 2. 多层LSTM的层次化表示 三、ELMo的运行过程 1. 预训练阶段 2. 下游任务微调 四、ELMo的…

二进制安卓清单 binary AndroidManifest - XCTF apk 逆向-2

XCTF 的 apk 逆向-2 题目 wp&#xff0c;这是一道反编译对抗题。 题目背景 AndroidManifest.xml 在开发时是文本 xml&#xff0c;在编译时会被 aapt 编译打包成为 binary xml。具体的格式可以参考稀土掘金 MindMac 做的类图&#xff08;2014&#xff09;&#xff0c;下面的博…

Mac Electron 应用签名(signature)和公证(notarization)

在MacOS 10.14.5之后&#xff0c;如果应用没有在苹果官方平台进行公证notarization(我们可以理解为安装包需要审核&#xff0c;来判断是否存在病毒)&#xff0c;那么就不能被安装。当然现在很多人的解决方案都是使用sudo spctl --master-disable&#xff0c;取消验证模式&#…

stack 和 queue容器的介绍和使用

1.stack的介绍 1.1stack容器的介绍 stack容器的基本特征和功能我们在数据结构篇就已经详细介绍了&#xff0c;还不了解的uu&#xff0c; 可以移步去看这篇博客哟&#xff1a; 数据结构-栈数据结构-队列 简单回顾一下&#xff0c;重要的概念其实就是后进先出&#xff0c;栈在…

【Rust自学】15.0. 智能指针(序):什么是智能指针及Rust智能指针的特性

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 15.0.1 指针的基本概念 指针是一个变量在内存中包含的是一个地址&#xff0c;指向另一个数据。 Rust 中最常见的指针是引用&#xff0c…

单调栈算法

文章目录 题目概述题目详解739.每日温度1475.商品折扣后的最终价格84.柱状图中最大的矩形 题目概述 单调栈&#xff1a;栈&#xff0c;并且栈是有序的 单调栈的两种写法&#xff1a; 左 -> 右&#xff0c;或者右 -> 左 建议使用左到右的写法 及时去掉无用元素&#xff0c…

vue-有关于TS与路由器

title: vue(TS)路由器 date: 2025-01-28 12:00:00 tags:- 前端 categories:- 前端Vue3-第二部分 这里是代码中出现TS的&#xff0c;后面是路由器 现在先上代码&#xff0c;步步分析。 eg1-props的使用 步步分析代码&#xff08;先理解&#xff0c;再实践&#xff09; 框架…

【AI编辑器】字节跳动推出AI IDE——Trae,专为中文开发者深度定制

目录 一、背景 二、核心特性 2.1 AI驱动的代码自动生成 2.2 智能问答与代码补全 2.3 多语言支持 2.4 插件与扩展 三、架构 四、下载使用 4.1 下载与安装 4.2 界面与配置 五、应用实践 5.1 快速生成代码 5.2 智能问答与调试 5.3 团队协作与代码审查 六、与Cursor…