《算法竞赛进阶指南》------图论篇

news2024/11/20 6:29:39

文章目录

    • 0x01 Telephone Lines POJ - 3662
    • 0x02 P1073 [NOIP2009 提高组] 最优贸易
    • 0x03 道路和航线 BZOJ2200
    • 0x04 Sorting It All Out POJ - 1094 topo
    • 0x05 Sightseeing trip POJ - 1734 最小环问题
    • 0x06 Cow Relays POJ - 3613 S到E经过k条边的最短路
    • 0x07 走廊泼水节 (Kruskal)

0x01 Telephone Lines POJ - 3662

Telephone Lines
题意:从1到N修一条电缆,有p对电线杆之间是可以连接的,电信公司可以提供k条电缆,其他的由John提供,求john提供的电缆的最长的那根的长度(ret)。
思路:实则是求最短最长的边。
二分结果(sum)。对于 边值>sum, 电信公司需要提供电缆。
用djk 计算 1->n 路径上的最短路径。 满足d[n]< k ,sum是一个符合的结果。
代码如下:

#include<iostream>
#include<cstring>
#include<queue>
#define ll long long
#define ld long double
#define ull unsigned long long
#define rep(i,a,b) for(int i=a;i<=b;i++)
ll gcd(ll a,ll b){ return b? gcd(b,a%b):a;}
const int N=2e4+10;
const ll P=1e9+7;
ll read(){
    ll s = 0, f = 1; char ch = getchar();
    while(!isdigit(ch)){
        if(ch == '-') f = -1;
        ch = getchar();
    }
    while(isdigit(ch)) s = (s << 3) + (s << 1) + (ch ^ 48), ch = getchar();
    return s * f;
}
using namespace std;
ll n,p,k;
ll head[N],ver[N],nex[N],edgevalue[N];
ll cnt;
void addedge(ll u,ll v,ll value)
{
    ver[++cnt]=v;
    edgevalue[cnt]=value;
    nex[cnt]=head[u];
    head[u]=cnt;
}
priority_queue<pair<int,int>> q;
ll d[N],v[N];
bool ischeck(ll sum)
{
    memset(d,0x3f,sizeof(d));
    memset(v,0,sizeof(v));
    while(!q.empty())
    {
        q.pop();
    }
    d[1]=0;
    q.push(make_pair(0,1));  //  距离  点
    while(!q.empty())
    {
        ll x=q.top().second;
        q.pop();
        if(v[x]) continue;
        v[x]=1;
        for(int i=head[x];i;i=nex[i])
        {
            int y=ver[i],z=edgevalue[i];
            if(z> sum)  z=1;
            else z=0;
            if(d[y]>d[x]+z)
            {
                 d[y]=d[x]+z;
                 q.push(make_pair(-d[y],y));
            }
        }
        if(v[n]==1) 
        break;
    }
    // printf("%lld\n",d[n]);
    // getchar();
    if(d[n]<=k) 
    return true;
    else
    return false;
}
void solve(){
    n=read();
    p=read();
    k=read();
    ll u,v,value;
    rep(i,1,p)
    {
        u=read();
        v=read();
        value=read();
        addedge(u,v,value);
        addedge(v,u,value);        
    }
    ll l=0,r=1000010;
    ll mid;
    while(l<r)
    {
        mid=(l+r)>>1;
        // printf("l:%lld r:%lld mid:%lld\n",l,r,mid);
        if(ischeck(mid))
        {
            r=mid;
        }
        else
        {
            l=mid+1;
        }
    }
    if(r==1000010) printf("-1\n");
    else
    printf("%lld\n",r);
    return ;
}
int main (){
  //freopen("in.txt","r",stdin);
  //freopen("out.txt","w",stdout);
  solve();
  getchar();
  getchar();
  return 0;
}

0x02 P1073 [NOIP2009 提高组] 最优贸易

最优贸易
题意:从1到达n号,在沿途中可选一点购买水晶球,在此之后可卖出去水晶球。商人阿龙只能购买一次,
问商人阿龙 旅游结束后,通过这样的方式最多赚取多少旅费?途中 一座城市可被重复经过。
数据范围: 1 < = n < = 1 0 5 , 1 < = m < = 5 ∗ 1 0 5 1<=n<=10^5,1<=m<=5*10^5 1<=n<=105,1<=m<=5105
思路:
在这里插入图片描述
代码如下:

#include<bits/stdc++.h>
#define ll long long
#define ld long double
#define ull unsigned long long
#define rep(i,a,b) for(int i=a;i<=b;i++)
ll gcd(ll a,ll b){ return b? gcd(b,a%b):a;}
const int N=1e6+10;
const ll P=1e9+7;
ll read(){
    ll s = 0, f = 1; char ch = getchar();
    while(!isdigit(ch)){
        if(ch == '-') f = -1;
        ch = getchar();
    }
    while(isdigit(ch)) s = (s << 3) + (s << 1) + (ch ^ 48), ch = getchar();
    return s * f;
}
using namespace std;
ll n,m;
ll vVAlue[N];
ll head[N],nex[N],ver[N];
ll cnt;
ll addedge(ll u,ll v)
{
    ver[++cnt]=v;
    nex[cnt]=head[u];
    head[u]=cnt;   
}

ll vis[N];
void djk(ll u,ll *D,ll flag)
{     
     priority_queue< pair<int,int> > q;
      
      memset(vis,0,sizeof(vis));
      if(flag==1)
       rep(i,1,n) D[i]=200;
      else
        rep(i,1,n) D[i]=0;
    //    rep(i,1,n)  cout<<D[i]<<" "; cout<<endl;
      D[u]=vVAlue[u];
      q.push(make_pair(D[u],u));
      while(!q.empty())
      {
          ll x=q.top().second;
          q.pop();
          for(int i=head[x];i;i=nex[i])
          {   
            //   cout<<"321"<<endl;
              ll y=ver[i];
              if(flag==1)
              {
                if(D[y] > D[x])
                {   
                    // cout<<vVAlue[y]<<" "<<D[x]<<endl;
                    D[y]=min(vVAlue[y],D[x]);
                    q.push(make_pair(-D[y],y));
                }
              }
              else 
              {
                  if(D[y] < D[x])
                  {   //cout<<vVAlue[y]<<" "<<D[x]<<endl;
                      D[y]=max(vVAlue[y],D[x]);
                      q.push(make_pair(D[y],y));
                  }
              }  
          }
      }
    //   cout<<flag<<endl;
    //   rep(i,1,n)
    //   {
    //       printf("u:%lld  value:%lld\n",i,D[i]);
    //   }
      return ;
}
struct zw
{
    ll x,y,z;
}a[N];
ll D[N],F[N];
void solve(){
    n=read();
    m=read();
    rep(i,1,n) vVAlue[i]=read();
    ll x,y,z;
    rep(i,1,m)
    {
        a[i].x=read();
        a[i].y=read();
        a[i].z=read();
        addedge(a[i].x,a[i].y);
        if(a[i].z==2)
        {
            addedge(a[i].y,a[i].x);
        }
    }
    djk(1,D,1);
    
    cnt=0;
    memset(head,0,sizeof(head));
    rep(i,1,m)
    {
        addedge(a[i].y,a[i].x);
        if(a[i].z==2)
        {
            addedge(a[i].x,a[i].y);
        }
    }
    djk(n,F,-1);

    ll sum=0;
    rep(i,1,n) sum=max(sum,F[i]-D[i]);
    printf("%lld\n",sum);
    return ;
}
int main (){
  //freopen("in.txt","r",stdin);
  //freopen("out.txt","w",stdout);
  solve();
  getchar();
  getchar();
  return 0;
}

0x03 道路和航线 BZOJ2200

拓扑排序,djk,
道路和航线
题意:
在这里插入图片描述思路:
在这里插入图片描述
代码如下:

#include<bits/stdc++.h>
#define ll long long
#define ld long double
#define ull unsigned long long
#define rep(i,a,b) for(int i=a;i<=b;i++)
ll gcd(ll a,ll b){ return b? gcd(b,a%b):a;}
const int N=2e5+10;
// const ll P=1e9+7;
ll read(){
    ll s = 0, f = 1; char ch = getchar();
    while(!isdigit(ch)){
        if(ch == '-') f = -1;
        ch = getchar();
    }
    while(isdigit(ch)) s = (s << 3) + (s << 1) + (ch ^ 48), ch = getchar();
    return s * f;
}
using namespace std;
ll n,R,P,S;
ll  cnt;
ll head[N],nex[N],edgevalue[N],var[N];
ll D[N],vis[N];
ll num[N],in[N];
ll ans;   // 编号个数
queue<int> c;  //存放编号
priority_queue< pair<ll,int>> q;
void addedge(ll u,ll v,ll value)
{
    var[++cnt]=v;
    edgevalue[cnt]=value;
    nex[cnt]=head[u];
    head[u]=cnt;
}
void dfs(ll u)
{   
    num[u]=ans;
    for(int i=head[u];i;i=nex[i])
    {
        int v=var[i];
        if(num[v]) continue;
        dfs(v);
    }
    return ;
}
void  djk(ll s)
{     
      ll u,v,value;
      memset(D,0x7f,sizeof(D));
      memset(vis,0,sizeof(vis));
      D[s]=0;
      c.push(num[s]);
      rep(i,1,ans)
      {
          if(in[i]==0 and num[s]!=i)
          c.push(i);
      }
      while(!c.empty())
      {
          ll x=c.front();
          c.pop();
          rep(i,1,n)
          {
              if(num[i]==x) q.push(make_pair(-D[i],i));
          }
          while(!q.empty())
          {
              u=q.top().second;
              q.pop();
              if(vis[u])  continue;
              vis[u]=1;
              for(int i=head[u];i;i=nex[i])
              {
                  v=var[i];
                  value=edgevalue[i];
                  if(D[v] > D[u]+value)
                  {
                      D[v]=D[u]+value;
                      if(num[u]==num[v])
                      {
                          q.push(make_pair(-D[v],v));
                      }
                  }
                  if(num[u]!=num[v])
                  {   
                      in[num[v]]--;
                      if(in[num[v]]==0)
                      {
                          c.push(num[v]);
                      }
                  } 
              }
          }
      }
}
void solve(){
    n=read();
    R=read();
    P=read();
    S=read();
    ll u,v,value;
    rep(i,1,R)
    {
        u=read(); v=read(); value=read();
        addedge(u,v,value);
        addedge(v,u,value);
    }
    rep(i,1,n)
    {
        if(num[i]==0)
        {
            ans++;
            dfs(i);
        }
    }
    rep(i,1,P)
    {
        u=read();
        v=read();
        value=read();
        in[num[v]]++;
        addedge(u,v,value);
    }
    djk(S);
    rep(i,1,n)
    {
        if(D[i]>0x3f3f3f3f) printf("NO PATH\n");
        else printf("%lld\n",D[i]);
    }
    return ;
}
int main (){
  //freopen("in.txt","r",stdin);
  //freopen("out.txt","w",stdout);
  solve();
  getchar();
  getchar();
  return 0;
}

0x04 Sorting It All Out POJ - 1094 topo

Sorting It All Out
题意:
在这里插入图片描述
思路:
在这里插入图片描述
代码如下:

#include<iostream>
#include<cstring>
#include<queue>
#define ll long long
#define ld long double
#define ull unsigned long long
#define rep(i,a,b) for(int i=a;i<=b;i++)
ll gcd(ll a,ll b){ return b? gcd(b,a%b):a;}
const int N=30;
const ll P=1e9+7;
ll read(){
    ll s = 0, f = 1; char ch = getchar();
    while(!isdigit(ch)){
        if(ch == '-') f = -1;
        ch = getchar();
    }
    while(isdigit(ch)) s = (s << 3) + (s << 1) + (ch ^ 48), ch = getchar();
    return s * f;
}
using namespace std;
ll n,m,cnt;
ll in[N],in1[N];
ll head[N],var[1000],nex[1000];
void addedge(ll u,ll v)
{
    var[++cnt]=v;
    nex[cnt]=head[u];
    head[u]=cnt;
}
ll ans=0;
char ch[N];
ll topo()
{
    rep(i,0,n-1) in[i]=in1[i];
    ans=0;
    queue<int> q;
    rep(i,0,n-1)
    {
        if(in[i]==0)  q.push(i);
    }
    bool logo=true;
    ll u,v;
    while(!q.empty())
    {
        if(q.size()>1) logo=false;
        ll u=q.front();
        ch[ans++]=u;
        q.pop();
        for(int i=head[u];i;i=nex[i])
        {
            v=var[i];
            if((--in[v])==0) q.push(v);
        } 
    }
    // cout<<ans<<" "<<logo<<n<<endl;
    if(ans<n) return -1;
    else 
    {
        if(logo==true) return 1;
        else return 0;
    }
}
void solve(){
    while(1)
    {
        n=read();
        m=read();
        if(n==0 and m==0) break;
        rep(i,0,n)
        {
            in1[i]=0;
            head[i]=0;
            cnt=0;
        }
        char x,y;
        ll u,v;
        ll res=0;
        ll inde=0;
        rep(i,1,m)
        {
            cin>>x>>y>>y;
            u=x-'A';
            v=y-'A';
            addedge(u,v);
            in1[v]++;
            if(res==0)
            {
                res=topo();
                // cout<<res<<endl;
                inde=i;
            } 
        }
        // cout<<res<<endl;
        if(res==0) cout<<"Sorted sequence cannot be determined."<<endl;
        else if(res==-1) cout<<"Inconsistency found after "<<inde<<" relations."<<endl;
        else if(res==1) 
        {
            cout<<"Sorted sequence determined after "<<inde<<" relations: ";
            rep(i,0,ans-1)  printf("%c",ch[i]+'A');
            cout<<"."<<endl;
        }
    }
}
int main (){
  //freopen("in.txt","r",stdin);
  //freopen("out.txt","w",stdout);
  solve();
  getchar();
  getchar();
  return 0;
}

0x05 Sightseeing trip POJ - 1734 最小环问题

留下一个小疑问点: int 和 ll a=0x3f3f3f3f 在这道题中 使用ll a=0x3f3f3f3f 会错。
Sightseeing trip
题意:
在这里插入图片描述
思路:弗洛伊德, 回溯路径。
外层循环k开始,对所以的路径刷新,添上k和步添上k
这个算法的思想很关键
在这里插入图片描述

在这里插入图片描述

#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
#define ll long long
#define rep(i,a,b) for(int i=a;i<=b;i++)
const int N=300+10;
using namespace std;
int a[N][N],dist[N][N],pos[N][N];
ll n,m;
ll ans=1e8;
vector<int> path;
void get_path(int x,int y){
    if(pos[x][y]==0) return ;
    get_path(x,pos[x][y]);
    path.push_back(pos[x][y]);
    get_path(pos[x][y],y);
}
void solve(){
    cin>>n>>m;
    //  memset(a,0x3f,sizeof(a));
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            a[i][j]=1e8;
        }
    }
    for(int i=0;i<=n;i++) a[i][i]=0;
    for(int i=1;i<=m;i++)
    {   
        int u,v,w;
        cin>>u>>v>>w;
        a[u][v]=a[v][u]=min(a[u][v],w);
    }
    memcpy(dist,a,sizeof(a));
    for(int k=1;k<=n;k++){
        for(int i=1;i<k;i++){
            for(int j=i+1;j<k;j++){
                if(dist[i][j]+a[j][k]+a[k][i]<ans){
                    ans=dist[i][j]+a[j][k]+a[k][i];
                    path.clear();
                    path.push_back(i);
                    get_path(i,j);
                    path.push_back(j);
                    path.push_back(k);
                }
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(dist[i][j]> dist[i][k]+dist[k][j]){
                    dist[i][j]=dist[i][k]+dist[k][j];
                    pos[i][j]=k;
                }
            }
        }
    }
    if(ans == 1e8){
         cout << "No solution." << endl;
    }
    else 
    {
        for(int i=0;i<(int)path.size();i++){
            cout<<path[i]<<" ";
        }
    }
    return ;
}
int main (){
  //freopen("in.txt","r",stdin);
  //freopen("out.txt","w",stdout);
  solve();
  getchar();
  getchar();
  return 0;
}

0x06 Cow Relays POJ - 3613 S到E经过k条边的最短路

传送门
题意:
在这里插入图片描述
思路: 点编号映射,矩阵快速幂
代码如下:

#include<iostream>
#include<cstring>
#define ll long long
#define ld long double
#define ull unsigned long long
#define rep(i,a,b) for(int i=a;i<=b;i++)
ll gcd(ll a,ll b){ return b? gcd(b,a%b):a;}
const int N=2e5+10;
const ll P=1e9+7;
const ll INF=0x3f3f3f3f;
ll read(){
    ll s = 0, f = 1; char ch = getchar();
    while(!isdigit(ch)){
        if(ch == '-') f = -1;
        ch = getchar();
    }
    while(isdigit(ch)) s = (s << 3) + (s << 1) + (ch ^ 48), ch = getchar();
    return s * f;
}
using namespace std;
ll  p[1010];
ll  a[300];
ll cnt;
struct M{
    ll edge[210][210];
    void init(){
        rep(i,1,200){
            rep(j,1,200){
                edge[i][j]=INF;                
            }
        }
    }
};
M add(M a,M b){
    M sum;
    sum.init();
    rep(i,1,cnt){
        rep(j,1,cnt){
            rep(k,1,cnt){
                sum.edge[i][j]=min(sum.edge[i][j],a.edge[i][k]+b.edge[k][j]);
            }
        }
    }
    return sum;
}
void solve(){
    ll n,t,s,e;
    cin>>n>>t>>s>>e;
    ll w,u,v;
    M sum;
    sum.init();
    for(int i=1;i<=t;i++){
        cin>>w>>u>>v;
        if(!p[u]){
            p[u]=(++cnt);
            a[cnt]=u;
        }
        if(!p[v]){
            p[v]=(++cnt);
            a[cnt]=v;
        }
        sum.edge[p[u]][p[v]]=min(w, sum.edge[p[u]][p[v]]);
        sum.edge[p[v]][p[u]]=min(w, sum.edge[p[v]][p[u]]);
    }
    M ans;
    memcpy(ans.edge,sum.edge,sizeof(sum.edge));
    // sum=add(sum,sum);
    n--;
    while(n){
        if(n&1) ans=add(ans,sum);
        sum=add(sum,sum);
        n>>=1;
    }
    cout<<ans.edge[p[s]][p[e]]<<endl;
}
int main (){
  //freopen("in.txt","r",stdin);
  //freopen("out.txt","w",stdout);
  solve();
  getchar();
  getchar();
  return 0;
}

0x07 走廊泼水节 (Kruskal)

走廊泼水节
题意:
在这里插入图片描述
思路: 克里斯特+模拟
在这里插入图片描述

#include<bits/stdc++.h>
#define ll long long
#define ld long double
#define ull unsigned long long
#define rep(i,a,b) for(int i=a;i<=b;i++)
ll gcd(ll a,ll b){ return b? gcd(b,a%b):a;}
const int N=1e4+10;
const ll P=1e9+7;
ll read(){
    ll s = 0, f = 1; char ch = getchar();
    while(!isdigit(ch)){
        if(ch == '-') f = -1;
        ch = getchar();
    }
    while(isdigit(ch)) s = (s << 3) + (s << 1) + (ch ^ 48), ch = getchar();
    return s * f;
}
using namespace std;
ll fa[N];
ll num[N];
ll  getfa(ll x){
  return x==fa[x] ? x: fa[x]=getfa(fa[x]);
}
struct zw{
    int x,y,z;
}a[N];
bool operator <(zw a,zw b){
  return a.z<b.z;
}
void solve(){
      ll n;
      cin>>n;
      rep(i,1,n-1){
         cin>>a[i].x>>a[i].y>>a[i].z;
      }
      rep(i,1,n){
        fa[i]=i;
        num[i]=1;
      }
      sort(a+1,a+n);
      ll sum=0;
      for(int i=1;i<=n-1;i++){
        int x=getfa(a[i].x);
        int y=getfa(a[i].y);
        if(x==y) continue;
        sum+=( num[x]*num[y]-1 )*(a[i].z+1);
        fa[y]=x;
        num[x]+=num[y];
      }
      cout<<sum<<endl;
      return ;
}
int main (){
  //freopen("in.txt","r",stdin);
  //freopen("out.txt","w",stdout);
  int T=read();
  while(T--)
  solve();
  getchar();
  getchar();
  return 0;
}

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

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

相关文章

美颜SDK算法是什么?美肤、滤镜与实时处理技术讲解

美颜SDK的出现&#xff0c;为开发者提供了一种方便、高效的方式&#xff0c;使其能够轻松地将先进的美颜算法集成到各种应用中。本文将深入探讨美颜SDK算法的本质&#xff0c;以及其在美肤、滤镜与实时处理等方面的技术讲解。 一、美颜SDK算法简介 美颜SDK算法是一套通过计算…

网络攻击(一)--安全渗透简介

1. 安全渗透概述 目标 了解渗透测试的基本概念了解渗透测试从业人员的注意事项 1.1. 写在前面的话 在了解渗透测试之前&#xff0c;我们先看看&#xff0c;信息安全相关的法律是怎么样的 中华人民共和国网络安全法 《中华人民共和国网络安全法》由全国人民代表大会常务委员会…

SpringBoot+线程池实现高频调用http接口并多线程解析json数据

场景 SpringbootFastJson实现解析第三方http接口json数据为实体类(时间格式化转换、字段包含中文)&#xff1a; SpringbootFastJson实现解析第三方http接口json数据为实体类(时间格式化转换、字段包含中文)-CSDN博客 Java中ExecutorService线程池的使用(Runnable和Callable多…

【conda】利用Conda创建虚拟环境,Pytorch各版本安装教程(Ubuntu)

TOC conda 系列&#xff1a; 1. conda指令教程 2. 利用Conda创建虚拟环境&#xff0c;安装Pytorch各版本教程(Ubuntu) 1. 利用Conda创建虚拟环境 nolonolo:~/sun/SplaTAM$ conda create -n splatam python3.10查看结果&#xff1a; (splatam) nolonolo:~/sun/SplaTAM$ cond…

应用现代化加速企业数字化转型

目录 一、数字化转型的必要性 二、应用现代化的推动力 数字化时代&#xff0c;企业正面临着前所未有的挑战和机遇。为了保持竞争力&#xff0c;许多企业正在寻求数字化转型&#xff0c;以提升运营效率、优化客户体验、创新商业模式。本文将探讨如何通过应用现代化加速企业数字化…

《算法竞赛进阶指南》数论篇

下述理论主要参考书目&#xff1a; 电子版pdf:算法竞赛进阶指南(p133-150) 文章目录 下述理论主要参考书目&#xff1a; [电子版pdf:算法竞赛进阶指南(p133-150)](http://www.j9p.com/down/536233.html)首先补充两个前置知识&#xff1a;约数和最大约数有关性质&#xff0c;可选…

二层交换原理

二层交换设备工作在OSI模型的第二层&#xff0c;即数据链路层&#xff0c;它对数据包的转发是建立在MAC&#xff08;Media Access Control &#xff09;地址基础之上的。二层交换设备不同的接口发送和接收数据独立&#xff0c;各接口属于不同的冲突域&#xff0c;因此有效地隔离…

Linux学习笔记之八(进程间的共享内存)

Linux 1、引言2、实现共享内存2.1、创建一个共享内存2.2、将共享内存链接到进程空间2.3、断开与共享内存的链接2.4、对共享内存进行后续操作 3、应用实例 1、引言 在之前一篇文章Linux学习笔记之六&#xff08;进程之间的管道通信和信号处理&#xff09;中我讲了进程间可以通过…

如何快速构建知识服务平台,打造个人或企业私域流量

随着互联网的快速发展&#xff0c;传统的知识付费平台已经不能满足用户的需求。而SaaS知识付费小程序平台则是一种新型的知识付费方式&#xff0c;具有灵活、便捷、高效等特点&#xff0c;为用户提供了更加优质的付费知识服务。本文将介绍如何搭建自己的SaaS知识付费小程序平台…

T天池SQL训练营(五)-窗口函数等

–天池龙珠计划SQL训练营 5.1窗口函数 5.1.1窗口函数概念及基本的使用方法 窗口函数也称为OLAP函数。OLAP 是OnLine AnalyticalProcessing 的简称&#xff0c;意思是对数据库数据进行实时分析处理。 为了便于理解&#xff0c;称之为窗口函数。常规的SELECT语句都是对整张表进…

elasticsearch-head 启动教程

D:\elasticsearch-head-master>grunt server ‘grunt’ 不是内部或外部命令&#xff0c;也不是可运行的程序 或批处理文件。 npm install -g grunt-clinpm install

资源三号5米全国数字高程模型DEM

简介 近些年来&#xff0c;国产高分辨率遥感卫星的发展突飞猛进&#xff0c;天绘系列卫星、资源三号卫星、高分一号、二号卫星以不断提高的影像空间分辨率、逐步增强的影像获取能力、较好的影像现势性等特点逐步打破了国外商业卫星的主导地位&#xff0c;开始广泛服务于各…

Andorid sudio 换行方法

1.遇到的问题&#xff0c;二维码内容要换行 String text "成绩&#xff1a;1000 \n姓名&#xff1a;张三 \n姓名&#xff1a;张三 \n姓名&#xff1a;张三 \n姓名&#xff1a;张三 \n姓名&#xff1a;张三 \n姓名&#xff1a;张三 \n姓名&#xff1a;张三 \n姓名&#xff…

Java数字化健康卫生智慧云HIS系统源码

基于云计算技术的B/S架构云HIS集挂号、处方、收费、取药、病历于一体,完全适配各类中小型医院、诊所。 一、云 HIS定义 1、云 HIS 系统是运用云计算、大数据、物联网等新兴信息技术&#xff0c;按照现代医疗卫生管理要求&#xff0c;在一定区域范围内以数字化形式提供医疗卫生…

细讲结构体

结构体是一些值的集合&#xff0c;这些值就是成员变量&#xff0c;这些变量可以是不同类型的。 当我们存放一个学生的信息是&#xff0c;包括性别&#xff0c;姓名&#xff0c;学号&#xff0c;年龄等内容&#xff0c;这些值是不同类型的&#xff0c;这是我们就可以使用结构体来…

实战rce绕过getshell曲折经历

tp rce漏洞 该网站debug显示该站点的tp版本为5.0.5&#xff0c;宝塔搭建 直接上rce payload 执行成功 问题点&#xff1a; 1.此站点disable_functions函数基本都禁用了&#xff0c;另外加载了禁用eval的扩展 2.web目录不允许出现.php后缀文件&#xff0c;写入后会立即删除 绕…

名创优品出海更难了,Q3净利增速放缓

近日&#xff0c;有媒体报道称&#xff0c;名创优品受市场流传针对公司的做空报告&#xff0c;叠加高管团队两次减持&#xff0c;共计180万股&#xff0c;若对应25美元的价格&#xff0c;则达4500万美元(约3.2亿元)。 12月5日&#xff0c;其港股收盘股价下跌14.04%&#xff1b…

本地团购分销:解密最新赚钱模式,带你开启财富之门!APP小程序H5三端源码交付,支持二开!

近年来&#xff0c;随着互联网的迅猛发展和电子商务的普及&#xff0c;本地团购分销逐渐成为了一种热门的赚钱模式。它不仅为消费者提供了更多的购物优惠&#xff0c;同时也给商家和分销商带来了可观的利润。在这篇文章中&#xff0c;我们将详细介绍本地团购分销的运作原理和盈…

15Linux、GIT及相关相似面试题、PostMan

Linux和git相似是命令相关的层次结构相似 Linux Linux Linux常用操作_linux操作-CSDN博客 程序员常用的10个Linux命令_简介linux系统中的10个常用命令及功能-CSDN博客 help help 命令 &#xff1a;获得 shell 内置命令的帮助信息&#xff0c;常用形式 help cd ls --help …

【C/PTA —— 15.结构体2(课内实践)】

C/PTA —— 15.结构体2&#xff08;课内实践&#xff09; 7-1 计算职工工资7-2 计算平均成绩7-3 找出总分最高的学生7-4 通讯录的录入与显示 7-1 计算职工工资 #include<stdio.h> #include<stdlib.h> typedef struct GZ {char name[6];double j;double f;double z;…