1.27补题 回训练营

news2025/1/31 18:33:41

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;
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

INCOSE需求编写指南-附录 B: 首字母缩略词和缩写

附录 Appendix B: 首字母缩略词和缩写ACRONYMS AND ABBREVIATIONS AD 难易程度的进阶 Advancement Degree of Difficulty AI 人工智能 Artificial Intelligence CM 配置管理 Configuration Management ConOps 运作理念 Concept of Operations COTS 商业现货 Comme…

B站吴恩达机器学习笔记

机器学习视频地址&#xff1a; 4.5 线性回归中的梯度下降_哔哩哔哩_bilibili 损失函数学习地址&#xff1a; 损失函数选择 选凸函数的话&#xff0c;会收敛到全局最小值。证明凸函数用Hessian矩阵。凸函数定义&#xff1a;两点连线比线上所有点都大。 batch理解&#xff1…

Vscode编辑器下 Markdown无法显示图片

1.问题 在vscode 编辑器中无法预览 markdon 文件中的图片 2.解决方案 大部分出现这种情况是因为新版本的vscode会阻拦有风险的资源显示&#xff0c;将安全等级调低即可。 方式一&#xff1a; 1.打开任意 MD 文件&#xff0c;ctrl&#xff0c;调出设置 2. 输入 markdown.ch…

mysql重学(一)mysql语句执行流程

思考 一条查询语句如何执行&#xff1f;mysql语句中若列不存在&#xff0c;则在哪个阶段报错一条更新语句如何执行&#xff1f;redolog和binlog的区别&#xff1f;为什么要引入WAL什么是Changbuf&#xff1f;如何工作写缓冲一定好吗&#xff1f;什么情况会引发刷脏页删除语句会…

国产650V碳化硅MOSFET在通信电源应用中全面取代超结MOSFET

在通信电源应用中&#xff0c;国产650V碳化硅&#xff08;SiC&#xff09;MOSFET全面取代超结MOSFET&#xff08;如硅基CoolMOS&#xff09;&#xff0c;是技术迭代、政策推动、市场需求和国产产业链成熟共同作用的结果。倾佳电子杨茜从以下多个维度解析这一趋势&#xff1a; 倾…

【ComfyUI专栏】通过软件获取PNG图片中的工作流信息

自从AI生成图片技术发展之后,你会发现很有意思的情况就是所有的图片中开始包含利用AI生成的工作流。有的时候你直接将图片拖到ComfyUI来获取图片中的工作流。下面的图片中的信息很意外的没有包含工作流,但那时我们可以看到的Parameters里面包含了设置之外,也有工作流节点内容…

《LLM大语言模型+RAG实战+Langchain+ChatGLM-4+Transformer》

文章目录 Langchain的定义Langchain的组成三个核心组件实现整个核心组成部分 为什么要使用LangchainLangchain的底层原理Langchain实战操作LangSmithLangChain调用LLM安装openAI库-国内镜像源代码运行结果小结 使用Langchain的提示模板部署Langchain程序安装langserve代码请求格…

进程控制的学习

目录 1.进程创建 1.1 fork函数 1.2 fork函数返回值 1.3 写时拷贝 1.4 fork 常规用法 1.5 fork 调用失败的原因 2. 进程终止 2.1 进程退出场景 2.2 进程常见退出方法 2.2.1 从main 返回 2.2.2 echo $&#xff1f; 查看进程退出码 2.2.2.1 我们如何得到退出码代表的含…

Formality:时序变换(二)(不可读寄存器移除)

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 一、引言 时序变换在Design Compiler的首次综合和增量综合中都可能发生&#xff0c;它们包括&#xff1a;时钟门控(Clock Gating)、寄存器合并(Register Merging)、…

前端实战:小程序搭建商品购物全流程

目录 项目概述 开发环境搭建 微信开发者工具下载与安装 项目创建流程 项目目录结构及各文件作用 商品展示页面开发 页面布局&#xff08;WXML 与 WXSS&#xff09; 数据获取与绑定&#xff08;JavaScript&#xff09; 加入购物车功能实现 购物车功能开发 购物车页面布…

Python中的函数(下)

函数返回值 返回单个值 函数可以通过 return 语句返回一个值。一旦执行到 return 语句&#xff0c;函数就会停止执行&#xff0c;并将指定的值返回给调用者。例如&#xff1a; 返回多个值 实际上&#xff0c;Python函数只能返回一个值&#xff0c;但可以通过返回一个元组来模…

探索AI(chatgpt、文心一言、kimi等)提示词的奥秘

大家好&#xff0c;我是老六哥&#xff0c;我正在共享使用AI提高工作效率的技巧。欢迎关注我&#xff0c;共同提高使用AI的技能&#xff0c;让AI成功你的个人助理。 "AI提示词究竟是什么&#xff1f;" 这是许多初学者在接触AI时的共同疑问。 "我阅读了大量关于…

Linux运维之Linux的安装和配置

目录 Linux的基本概念&#xff1a; 1.为什么要使用Linux&#xff1f; 2.什么是Linux&#xff1f; Linux的安装和配置&#xff1a; 1.下载Linux的虚拟机和镜像文件&#xff1a; 1.1下载虚拟机 1.2下载镜像文件 2.在虚拟机或者物理机中安装Linux操作系统 3.配置虚拟机的…

【深度分析】微软全球裁员计划不影响印度地区,将继续增加当地就业机会

当微软的裁员刀锋掠过全球办公室时&#xff0c;班加罗尔的键盘声却愈发密集——这场资本迁徙背后&#xff0c;藏着数字殖民时代最锋利的生存法则。 表面是跨国公司的区域战略调整&#xff0c;实则是全球人才市场的地壳运动。微软一边在硅谷裁撤年薪20万美金的高级工程师&#x…

联想Y7000+RTX4060+i7+Ubuntu22.04运行DeepSeek开源多模态大模型Janus-Pro-1B+本地部署

直接上手搓了&#xff1a; conda create -n myenv python3.10 -ygit clone https://github.com/deepseek-ai/Janus.gitcd Januspip install -e .pip install webencodings beautifulsoup4 tinycss2pip install -e .[gradio]pip install pexpect>4.3python demo/app_januspr…

【MQ】探索 Kafka

高性能 消息的顺序性、顺序写磁盘 零拷贝 RocketMQ内部主要是使用基于mmap实现的零拷贝&#xff0c;用来读写文件 减少cpu的拷贝次数和上下文切换次数&#xff0c;实现文件的高效读写操作 Kafka 零拷贝 Kafka 使用到了 mmap 和 sendfile 的方式来实现零拷贝。分别对应 Jav…

指针(C语言)从0到1掌握指针,为后续学习c++打下基础

目录 一&#xff0c;指针 二&#xff0c;内存地址和指针 1&#xff0c;什么是内存地址 2&#xff0c;指针在不同系统下所占内存 三&#xff0c;指针的声明和初始化以及类型 1,指针的声明 2,指针 的初始化 1&#xff0c; 初始化方式优点及适用场景 4,指针的声明初始化类型…

项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(九)(完结篇)

文章目录 一、成绩查询模块实现1、学生成绩查询功能实现1.1 页面设计1.2 前端页面实现1.3 后端功能实现2、成绩分段查询功能实现2.1 页面设计2.2 前端页面实现2.3 后端功能实现二、试卷练习模块实现三、我的分数模块实现1、 页面设计2、 前端页面实现3、 后端功能实现四、交流区…

AI DeepSeek-R1 Windos 10 环境搭建

1、安装&#xff1a; 下载 Python |Python.org CUDA Drivers for MAC Archive | NVIDIA pip 和virtualenv Download Ollama on Windows 如下图 2、下载模型 deepseek-r1 ollama run deepseek-r1 或者可以ollama run deepseek-r1:8b 或 3、安装一个可视化对话Chatbox 下载 …

【懒删除堆】力扣2349. 设计数字容器系统

设计一个数字容器系统&#xff0c;可以实现以下功能&#xff1a; 在系统中给定下标处 插入 或者 替换 一个数字。 返回 系统中给定数字的最小下标。 请你实现一个 NumberContainers 类&#xff1a; NumberContainers() 初始化数字容器系统。 void change(int index, int numb…