<队内胡策> 2017.10.24 求逆序对+表达式计算+贪心+Bfs+最短路、exgcd

贪心法 逆序对问题 贪心法求逆序对问题代码 立即下载

*PS:为什么我t5死活都调不出来呢(눈‸눈)

T1:原创,参考noip火柴排队。
T2: codevs 2178 表达式运算Cuties (我自己找的)
T3:Codeforce867E(865D) Buy Low Sell High
T4: USACO 2015 DEC Gold  不明链接1   不明链接2
( 该网站不提供在线测评,仅提供数据下载。考试使用原数据。)
T5:原创。


这里写图片描述
这里写图片描述


这里写图片描述


T1 原创 火柴排队的改编版

一说到火柴排队,应该就会做了。(好巧 这个题我前些天才看过qwq)。

解法:
对于B中的每个字符都统计下他在A中出现的位置,存入一个数组里,这个位置就是它最后要移到的位置。最后对这个数组求一个逆序对,逆序对的数量就是最少需移动的步数。
不能的情况就是B和A的字符种类或数量不同,输入时处理。

代码
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;

int N,ans,cnt,Cnt;
int a[110],used[1000],b[110];
char c[110];
struct maple{
    int pos;
    char a;
}A[110],B[110];

bool cmp(maple c,maple d)
{
    return c.a<d.a;
}

void hebing(int l,int mid,int r)
{
    int i=l,j=mid+1,k=l-1;
    while(i<=mid&&j<=r)
    {
        if(a[i]<=a[j]) b[++k]=a[i],++i;
        else b[++k]=a[j],ans+=mid-i+1,++j;
    }
    while(i<=mid) b[++k]=a[i],++i;
    while(j<=r)  b[++k]=a[j],++j;
    for(int i=l;i<=r;++i)
      a[i]=b[i];
}
void Mergesort(int l,int r)
{
    if(l==r) return ;
    int mid=(l+r)>>1;
    Mergesort(l,mid);
    Mergesort(mid+1,r);
    hebing(l,mid,r);
} 
int main()
{
    freopen("order.in","r",stdin);
    freopen("order.out","w",stdout);
    scanf("%d",&N);
    scanf("%s",c);
    for(int i=0;i<N;++i)
    {
        A[i].a=c[i],A[i].pos=i;
        if(!used[c[i]]) ++cnt;
        ++used[c[i]];
    }
    scanf("%s",c);
    for(int j=0;j<N;++j)
    {
        B[j].a=c[j],B[j].pos=j;
        --used[c[j]];
        if(!used[c[j]]) ++Cnt;
        if(used[c[j]]<0) Cnt=-110;
    }
    if(cnt==Cnt)
    {
        sort(A,A+N,cmp);
        sort(B,B+N,cmp);
        for(int i=0;i<N;++i)
            a[B[i].pos]=A[i].pos;
        Mergesort(0,N-1);
        cout<<ans;
    }
    else cout<<-1;
    return 0;
}

这里写图片描述


T2 简单的栈应用

注意处理负数的情况,判断栈空的函数一定要放在最前面。

代码
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<stack>
using namespace std;

int k[100],f=1;
char a[210];
stack<long long> num;
stack<char> opt;

void Done()
{
    char x=opt.top();
    opt.pop();
    long long a=num.top();num.pop();
    long long b=num.top();num.pop();
    long long c=0;
    if(x=='+') c=a+b;
    if(x=='-') c=b-a;
    if(x=='*') c=b*a;
    if(x=='/') c=b/a;
    if(x=='^') 
    {
      c=1;
      while(a)
      {
          c*=b;
          --a;
      }
    }
    num.push(c);
}
int main()
{
    freopen("formula.in","r",stdin);
    freopen("formula.out","w",stdout);
    scanf("%s",a);
    k['+']=k['-']=1;
    k['*']=k['/']=2;
    k['^']=3;
    k['(']=4;
    num.push(0);
    long long l=strlen(a),Num=0;
    a[l]=')';
    for(int i=0;i<=l;++i)
    {
        if(a[i]>='0'&&a[i]<='9') Num=Num*10+(a[i]-'0'),Num*=f,f=1;
        else{
               if(Num!=0) num.push(Num); 
               Num=0;
               if(a[i]=='-'&&a[i-1]=='(') 
               {
                  f=-1;
                  continue;
               }
               if(a[i]==')')
               {
                   while(!opt.empty()&&opt.top()!='(')   Done();
                   if(!opt.empty()) opt.pop();
               }
               else if(opt.empty()||opt.top()=='('||k[a[i]]>k[opt.top()])      opt.push(a[i]);
               else 
               {
                   while(!opt.empty()&&opt.top()!='('&&k[a[i]]<=k[opt.top()]) Done();
                   opt.push(a[i]);
               }
        }
    }
    while(!opt.empty()&&opt.top()!='(') Done();
    cout<<num.top();
    return 0; 
}

这里写图片描述
这里写图片描述


T3 看似DP的贪心

是不是很像之前的一道有N天每天可买可卖可不作处理的dp问题??

但是那个题有个限制就是每天手里最多持有一份股票,而这个题则是多份的。

因为这个题是t3而之前又做过类似的题,所以我马上就在想dp的路上一去不复返了QAQ。。。

最后确实打出来了,测的时候却显示MLE!!!因为long long的数组开的太大!!! 好吧。。。最后知道long long 在128MB下也就能开个1600万+。。。

定义 f[i][j]表示到第i天手里有j份股票所赚到的最多的钱数

可知

   f[i][j]=max(f[i][j],f[i-1][j]);         // 不作处理
   f[i][j]=max(f[i][j],f[i-1][j+1]+P[i]);  // 卖出
   f[i][j]=max(f[i][j],f[i-1][j-1]-P[i]);  //买入

改完后可以过5个点

DP代码
#include<iostream>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdio>
using namespace std;
const int Cn=300000+10;

int N;
long long P[Cn],f[4000][4000];

int main()
{
    freopen("resell.in","r",stdin);
    freopen("resell.out","w",stdout);
    scanf("%d",&N);
    for(int i=1;i<=N;++i) 
       scanf("%lld",&P[i]);
    for(int i=1;i<=N;++i)
       for(int j=0;j<=N;++j)
       {
          f[i][j]=-1e9+7;
          if(j<=i) 
          {
               if(i!=1)
               {
                 f[i][j]=max(f[i][j],f[i-1][j]);
                 f[i][j]=max(f[i][j],f[i-1][j+1]+P[i]);
                 if(j-1>=0) f[i][j]=max(f[i][j],f[i-1][j-1]-P[i]);
               } 
               else f[1][0]=0,f[1][1]=-P[1];
          }
       }
    cout<<f[N][0];
    return 0;
}

emmmm。。。如果用滚动数组优化的话可以过6个点,就是另开一个数组先记录一下f[i-1]的值用来更新。。。这里就不给出代码了。

正解 ·贪心

来自loi.Sherlock的题解总结(就是讲题时我做的笔记啊qwq,略长)

emmm...要赚的钱最多,我们肯定是低价买入,高价买出。。

大体上想想:可以维护一个小根堆,每过一天,用当天的价格和堆顶比较,如果价格大于堆顶,ans就加上*当天价格-堆顶价格*,弹出堆顶;如果小于等于,就加入堆。

但是这个做法有一个bug,举个栗子:

2 5 10 

按照我们现在的贪心做法,答案应该是 5-2=3 (每天只能操作一次),但是正确答案应该是 10-2=8

这就很尴尬了。。。(划掉)

这时我们发现 10-2=(10-5)+(5-2) ,这是不是代表我可以利用一下5呢??

对于 a<b<c 的情况,我要利用中介b ,就把b放一个进去(之前是b>a时,只统计ans,b并没有被放入)用来做中介。

但是这样还有一个bug 

如 2 5 10 7   输出 10-5+5-2=8 ,但正确答案是 10-2+7-5=10

我们发现之前的5实际上并没有被用到,反而被弹出了。

解决的方法就是一开始就放上两个5,一个做中介,一个用来更新答案。

所以对之前贪心做法的改进就是当我遇到一个比堆顶大的元素时,更新ans,弹出堆顶,同时放入两个当前价格,对答案不会有影响。
代码
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
using namespace std;

int N;
long long ans=0;
int P[300010];

priority_queue<int,vector<int>,greater<int> >q;

int main()
{
    freopen("resell.in","r",stdin);
    freopen("resell.out","w",stdout);
    scanf("%d",&N);
    for(int i=1;i<=N;++i)
    {
        scanf("%d",&P[i]);
        if(!q.empty()&&P[i]>q.top())
        {
            ans+=P[i]-q.top();
            q.pop();
            q.push(P[i]);
        }
        q.push(P[i]);
    }
    printf("%lld",ans);
    return 0;
}

这里写图片描述
这里写图片描述


T4 无比麻烦的BFS

注意特判啊!!我做的时候WA,TLE,MLE真是够了!

注意紫色的格子上的移动方向是与之前进入的方向有关的,并不是可以随便走的!! 所以要另开一维记录前进的方向,但是并不是每个格子的前进方向都要记录,只需记录紫色格子的,不然会TLE。。

代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
const int mxn=1000+5;

int N,M,f;
int x[4]={0,1,0,-1},  //  0--> 右 1--> 下 2--> 左 3-->上 
    y[4]={1,0,-1,0};  
int A[mxn][mxn];
int used[mxn][mxn][2][5];
struct maple{
    int x,y,z,face,d;
};
queue<maple>q;  // 手打队列会mle 

bool can(int k,maple a,int K)
{
    int X=a.x+x[k],Y=a.y+y[k];
    if(X<=0||X>N||Y<=0||Y>M||used[X][Y][a.z][K]) return false;
    if(A[X][Y]==0) return false;    
    if(A[X][Y]==3&&!a.z) return false;
    return true;
}
void Bfs()
{
    q.push((maple){1,1,0,0,0});
    used[1][1][0][4]=1;
    while(!q.empty())
    {
        maple a=q.front();
        q.pop();
        if(a.x==N&&a.y==M)  
        {
             f=1;
             printf("%d",a.d);
             return ;
        }
        if(A[a.x][a.y]==4)
        {
           int face=a.face;
           int X=a.x+x[a.face],Y=a.y+y[a.face];
           if(A[X][Y]!=4) face=4;  // 记录每个格子的方向会T 
           if(used[X][Y][a.z][face]) continue;
           if(can(a.face,a,face))
           {
               int xx=a.x+x[a.face],yy=a.y+y[a.face],z=a.z,d=a.d+1;
               if(A[xx][yy]==2) z=1,used[xx][yy][0][face]=1;   // 不加会T 1
               q.push((maple){xx,yy,z,face,d});
               used[xx][yy][z][face]=1;
               continue;
           }
        }
        for(int i=0;i<4;++i)
        {
            int xx=a.x+x[i],yy=a.y+y[i],face=i;
            if(A[xx][yy]!=4) face=4; 
            if(can(i,a,face))
            {
                int z=a.z,d=a.d+1;
                if(A[xx][yy]==4) z=0;
                if(A[xx][yy]==2) z=1,used[xx][yy][0][face]=1;  //不加会T 2
                q.push((maple){xx,yy,z,face,d});
                used[xx][yy][z][face]=1;
            }
        }
    }
}
int main()
{
    freopen("cowboy.in","r",stdin);
    freopen("cowboy.out","w",stdout);
    scanf("%d%d",&N,&M);
    for(int i=1;i<=N;++i)
       for(int j=1;j<=M;++j)
          scanf("%d",&A[i][j]);
    Bfs();
    if(!f) cout<<-1;
    return 0; 
}

//*PS:注释的都是血的教训。。。QAQ

这里写图片描述
这里写图片描述
这里写图片描述


T5 十分明显的exgcd??

再次%%%原创题dalao @loi.MurasameKatana

由于这个题我还是没能调出来,所以我打算十分不要脸的打算粘上题解和std_(:з」∠)_ 。。。。ε=ε=ε=┌(; ・_・)┘跑

而对于本题,首先我们将起点到所有城镇的距离(最短路)排序,每次选取存在妖刀且路程之和为当前最小的两个城镇中的妖刀,取其攻击力为a b,结界初始防御值-临界防御值为c,那么两把妖刀各自的使用次数为方程的解x,y

那么我们首先通过exgcd()求出一组解满足ax + by = gcd(a,b)

注:exgcd()求出的特解为 |x| + |y| 最小的一组解

然后得到满足ax + by = c的解,再推导其他的解找到:

两个使用次数大于0,使用方案不会使任意一把妖刀折断,且消耗的磨损值之和最小的解。

这便是T5胧村正的算法过程

然后就是注意细节处理

by  Loi_MurasameKatana

(侵删)

Std
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#define RI register int
using namespace std;
typedef long long ll;
const int INF =1000000007;
ll n,m,h,p,ru,rv,rw,tot,x,y,xs,ys,ans,anz,A,Z,minx,f;
ll dis[100010],first[200010],nxt[200010],c[100010],r[100010],k[100010],t[100010],num[100010];
bool flag;
bool inq[100010],unb[100010];
struct edge
{
    ll u,v,w;
}l[400010];
queue<int>q;
inline bool cmp(ll a,ll b)
{
    if(dis[a]!=dis[b])
    return dis[a]<dis[b];
    else return a<b;
}
inline void build(ll f,ll t,ll c)
{
    l[++tot]=(edge){f,t,c};
    nxt[tot]=first[f];
    first[f]=tot;
}
inline bool check_1(ll a,ll b,ll c)//分情况讨论边界条件 
{
    if(a>0&&b>0)
    {
        if(xs<=0||ys>(k[num[c]]/r[num[c]]))
        return 0;
    }
    else if(a>0&&b<0)
    {
        if(xs>(k[num[c-1]]/r[num[c-1]])||ys>(k[num[c]]/r[num[c]]))
        return 0;
    }
    else if(a<0&&b>0)
    {
        if(xs<=0||ys<=0)
        return 0;
    }
    else if(a<0&&b<0)
    {
        if(xs>(k[num[c]]/r[num[c]])||ys<=0)
        return 0;
    }
    return 1;
}
inline bool check_2(ll a,ll b,ll c)
{
    if(a>0&&b>0)
    {
        if(xs>(k[num[c-1]]/r[num[c-1]])||ys<=0)
        return 0;
    }
    else if(a>0&&b<0)
    {
        if(xs<=0||ys<=0)
        return 0;
    }
    else if(a<0&&b>0)
    {
        if(xs>(k[num[c-1]]/r[num[c-1]])||ys>(k[num[c]]/r[num[c]]))
        return 0;
    }
    else if(a<0&&b<0)
    {
        if(xs<=0||ys>(k[num[c]]/r[num[c]]))
        return 0;
    }
    return 1;
}
inline void SPFA()
{
    for(RI i=1;i<=n;i++)
    dis[i]=INF;
    dis[1]=0;
    q.push(1);
    inq[1]=1;
    while(!q.empty())
    {
        int k=q.front();
        q.pop();
        inq[k]=0;
        for(RI i=first[k];i!=-1;i=nxt[i])
        {
            ll x=l[i].v;
            if(dis[x]>dis[k]+l[i].w)
            {
                dis[x]=dis[k]+l[i].w;
                if(!inq[x])
                {
                    q.push(x);
                    inq[x]=1;
                }
            }
        }
    }
}
inline ll exgcd(ll a,ll b,ll &x,ll &y)
{
    if(b==0)
    {
        x=1;
        y=0;
        return a;
    }
    ll d=exgcd(b,a%b,x,y);
    ll t=x;
    x=y;
    y=t-a/b*y;
    return d;
}
int main()
{
    freopen("blade.in","r",stdin);
    freopen("blade.out","w",stdout);
    memset(first,-1,sizeof(first));
    scanf("%lld%lld%lld%lld",&n,&m,&h,&p);
    for(RI i=1;i<=m;i++)
    {
        scanf("%lld%lld%lld",&ru,&rv,&rw);
        build(ru,rv,rw);
        build(rv,ru,rw);
    }
    for(RI i=1;i<=n;i++)
    {
        scanf("%lld%lld%lld%lld",&c[i],&r[i],&k[i],&t[i]);
        if(t[i]==1)
        c[i]*=-1;
        if(!c[i]&&!r[i]&&!k[i]&&!t[i])
        unb[i]=1;
    }
    SPFA();
    for(RI i=1;i<=n;i++)
    if(unb[i]==1)
    dis[i]=INF;
    for(RI i=1;i<=n;i++)
    num[i]=i;
    sort(num+1,num+n+1,cmp); // 给城镇排序 
    minx=1e9+7;
    for(RI i=2;i<=n;i+=2)
    {
        if(unb[num[i-1]]||unb[num[i]]) // 若搜遍周边城镇也没有找到 
        break;
        ll d=exgcd(c[num[i-1]],c[num[i]],x,y);//ax+by=gcd(a,b) 
        if(!d||(h-p)%d!=0)  //%0RE 若无解 
        continue;
        ll s=(h-p)/d;//asx+bsy=c 
        x*=s;
        y*=s;
        if(x<y)
        {
            swap(x,y);
            swap(c[num[i-1]],c[num[i]]);
            swap(r[num[i-1]],r[num[i]]);
            swap(k[num[i-1]],k[num[i]]);
        }
        int li=x;
        int lr=y;
        for(RI j=0;;j++)//j>=0 
        {
            xs=x-(c[num[i]]/d)*j;//xs=x-b/d*j
            ys=y+(c[num[i-1]]/d)*j;//ys=y+a/d*j
            if(!check_1(c[num[i-1]]/d,c[num[i]]/d,i))
            break;
            if(xs>0&&ys>0&&xs<=(k[num[i-1]]/r[num[i-1]])&&ys<=(k[num[i]]/r[num[i]]))//合法情况,使用次数大于0且未达次数上限 
            {
                if(((xs*r[num[i-1]]+ys*r[num[i]])<minx)||(A!=0&&Z!=0&&(xs*r[num[i-1]]+ys*r[num[i]]==minx)&&(abs(xs*r[num[i-1]]-ys*r[num[i]])<abs(A*r[num[i-1]]-Z*r[num[i]]))))//取磨损值消耗之和最小的方案 
                {//若存在多解取磨损值相差最小的 
                    minx=(xs*r[num[i-1]]+ys*r[num[i]]);
                    A=xs;
                    Z=ys;
                    flag=1;//存在合法解
                }
            }
        }
        x=li;
        y=lr;
        for(RI j=-1;;j--)//j<0
        {
            xs=x-(c[num[i]]/d)*j;
            ys=y+(c[num[i-1]]/d)*j;//x为大正数,y为大负数的情况不会导致非法退出
            if(!check_2(c[num[i-1]]/d,c[num[i]]/d,i))
            break;
            if(xs>0&&ys>0&&xs<=(k[num[i-1]]/r[num[i-1]])&&ys<=(k[num[i]]/r[num[i]]))
            {
                if(((xs*r[num[i-1]]+ys*r[num[i]])<minx)||(A!=0&&Z!=0&&(xs*r[num[i-1]]+ys*r[num[i]]==minx)&&(abs(xs*r[num[i-1]]-ys*r[num[i]])<abs(A*r[num[i-1]]-Z*r[num[i]]))))
                {
                    minx=(xs*r[num[i-1]]+ys*r[num[i]]);
                    A=xs;
                    Z=ys;
                    flag=1;
                }
            }
        }
        if(flag)
        {
            ans=min(A*r[num[i-1]],Z*r[num[i]]);//统计 
            anz=max(A*r[num[i-1]],Z*r[num[i]]);
            break;
        }
    }
    if(flag)
    {
        printf("%lld %lld\n",ans,anz);
    }
    else printf("Game over\n");
    return 0;
}

The end.

基于MATLAB的电池等效电路模型(ECM)仿真,用于分析电气行为和动态响应.zip 1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 立即下载

相关推荐

隔离型全桥LLC谐振变化器建模及参数设计资料【仿真+设计报告+计算书】

内容概要:本文档系统性地提供了隔离型全桥LLC谐振变换器的建模、仿真与参数设计全套技术资料,涵盖Simulink/Plecs仿真模型、详细设计报告及Mathcad计算书,内容涉及开环与闭环控制、软启动过程、恒压恒流双闭环竞争控制等多种工况。资料还拓展至多相交错LLC、双向CLLC拓扑以及V2G(Vehicle-to-Grid)电动汽车充放电等前沿应用场景,并融合状态估计算法(如卡尔曼滤波、扩展卡尔曼滤波、粒子滤波)与神经网络技术进行系统性能优化,配套PPT说明与高水平EI期刊复现案例,为电力电子领域的科研与工程设计提供完整的技术支撑; 适合人群:适用于电力电子、电气工程及其自动化等相关专业的高校研究生、科研人员,以及从事高频DC-DC变换器、新能源电源系统开发的工程师,具备扎实电路理论基础和Matlab/Simulink仿真能力者尤佳; 使用场景及目标:①支撑LLC谐振变换器相关的科研课题、学位论文或项目开发;②开展高频高效电源的参数设计、效率优化与动态响应分析;③学习并复现高水平期刊中先进的控制策略,如变频控制、混合移相控制及智能优化算法;④掌握Simulink/Matlab在电力电子系统建模、控制算法实现与状态估计中的综合应用; 阅读建议:建议结合仿真模型、Mathcad计算书与设计报告三位一体同步研习,重点理解主电路参数设计与闭环控制逻辑之间的耦合关系,优先运行典型算例并调试关键模块,有条件者可进一步推进至硬件原型验证,并积极探索状态估计与人工智能算法在电力系统动态建模中的融合应用。

A. Cubes Sorting(思维+排序/逆序对+贪心)

https://codeforces.com/contest/1420/problem/A 贪心考虑极端情况,也就是完全从大到小的,手动模拟发现始终比题目的yes条件少一个,那么其他情况只要有一个地方和这个最劣解不同,就会至少有+1的优化,那么就是Yes #include<iostream> #include<vector> #include<queue> #include<cstring> #include<cmath> #include&

代码笔记本 1150

OpenClaw的引导配置(onboard)流程

脚本安装的直接安装完到引导配置界面,其他安装方式还可以直接命令到配置。

supersolon的专栏 1324

[队内测试Day10.24Final]逆序对+表达式计算+贪心+图论+数论?

T1#include<cstring> #include<cstdio> #include<algorithm> #include<iostream> #include<map> #define L(w) w << 1 #define R(w) w << 1|1 const int MAXN = 10000 + 50; using namespace std; int n; char s1[MAXN

LOI_pingxing的博客 347

嵌入式系统中的轻量级压缩实践——miniLZO在STM32上的性能优化

本文深入探讨了miniLZO轻量级压缩算法在STM32嵌入式系统中的性能优化实践。通过对比无损压缩算法的性能特点,详细解析了miniLZO在内存占用、压缩速度方面的优势,并提供了STM32移植、参数调优及创新应用案例,帮助开发者在资源受限环境中实现高效数据压缩。

weixin_30776273的博客 84

【农业生产系统模型】基于R语言APSIM模型进阶应用与参数优化、批量模拟实践技术

APSIM模型有Classic和Next Generation两个系列模型,能模拟几十种农作物、牧草和树木的土壤-植物-大气过程,被广泛应用于精细农业、水肥管理、气候变化、粮食安全、土壤碳周转、环境影响、农业可持续性、农业生态等诸多与农业生产和科研有关的领域。R语言是一门应用场景广泛、简单易学的程序语言,APSIM模型开发了许多R语言辅助包,在APSIM模型的气候、土壤、管理措施等数据准备,自动化模拟,参数优化和结果分析上都发挥着重要的作用。案例一:APSIM模型输入参数和土壤文件的制备。

2303_79243743的博客 1046

POJ 4020 NEERC John's inversion 贪心+归并求逆序对

题意:给你n张卡,每张卡上有蓝色和红色的两种数字,求一种排列使得对应颜色数字之间形成的逆序对总数最小 题解:贪心,先按蓝色排序,数字相同再按红色排,那么蓝色数字的逆序总数为0,考虑交换红色的数字消除逆序, 那么这个操作的代价是蓝色的数字逆序对增加2*len-3,而红色的数字交换最多也只能消除那么多对逆序对。不会比当前更优。 因为数据范围比较大,用树状数组,线段树,可能要离散,所以学习了归并排...

weixin_33962923的博客 142

python123题目——摩尔斯电码转换

类型:列表元组。

m0_62488776的博客 4416

<胡策day> 10.26 T1 最大子串权值

*PS:一上来第一题就是一个思维题qwq,emmm…考场上只打了个暴力,果断60分滚粗。%%那些在考场上打出正解的dalao。                          题目来源:钟长者(侵删)                【问题描述】 你是能看到第一题的 friends 呢。

Loi_Mapleleaf的小池 822

拉普拉斯矩阵

1、预备知识 拉普拉斯矩阵定义为:L=D-W。其中,D为度矩阵,W为权重矩阵。 (1)D是对角矩阵,对角线上的元素时节点的度,即所有与该节点相关联的边的权重之和;对角线以外的元素为0。有向图的对角矩阵分为 出度矩阵 和 入度矩阵。 图1.1 无向图中的度矩阵 (2)W在无向图中是对称矩阵,在有向图中是非对称矩阵。 ...

zzhe 1万+

安全监控:人员行为分析_(2).人员行为分析基础理论

人员行为分析是指利用计算机视觉技术对视频中的人类行为进行实时或离线检测、识别和理解的过程。视频采集:通过摄像头等设备获取视频数据。视频预处理:对视频数据进行噪声过滤、图像增强等处理,以便后续分析。特征提取:从视频中提取出与人员行为相关的特征,如人体姿势、动作轨迹等。行为识别:利用机器学习或深度学习模型对提取的特征进行分类,识别出具体的人员行为。行为理解:对识别出的行为进行进一步分析,理解其背后的意图或状态。在人员行为分析中,常用的公开数据集包括UCF101、HMDB51、ActivityNet等。

zhubeibei168的博客 1345

<考试题> codevs 5251 WYW的数字金字塔

*PS:原来暴力优化优化是可以过的么qwq,ljoj 数据手动测并没有T。。。最后默默的吐槽一句,附上一个金字塔的图是因为怕我们没有见过吗。。。go to the problem题目描述 Descriptionwyw有一个数字n,他要用这个数字写出一个数字金字塔。wyw用随机数生成器生成了一个小于n且大于1的正整数k。wyw找来一张白纸,他在白纸的最低端写下了这个数字n。wyw在n的上面紧挨着写下了

Loi_Mapleleaf的小池 545

行测测评——矩阵、圆形、环形三角图形数列推理解题技巧

写在前面:各大公司的测评做的让人眼花缭乱,很多题型都是第一次见,比如逻辑关系、信息推理,最难的要属找规律的数字推理了。根据B站UP主刘文超老师的课程,记录一下解题技巧。感谢UP主的无私奉献,原地址连接:https://www.bilibili.com/video/BV1it411M7o2?t=528&p=7 解题技巧: 从图形的上下、左右、交叉 角度进行尝试求解 基本法则是“加、减、乘、除、倍数、次方”六种形态。 一、有心数阵 解题技巧:周边数字通过某种运算得到中间数字 1.周边数..

涵盖了计算机专业基础知识、数学建模相关实践、复杂网络论文研究、LeetCode算法刷题经验、C语言开发经验、前端Vue、React框架开发实战相关知识 8642

<学习笔记?>考试与做题的注意事项总结。

数组:1.数组一定不要开太大,int 型 128MB~3200万,256MB~6400万,注意char 占1字节,long int 占4字节,long long 占8字节 ,double 占8字节 2.数组下标中有减法的话一定要注意判边界,不能访问负数下标(windows下不会报错)

Loi_Mapleleaf的小池 533

SAP-MM-采购过账接口(与WMS集成)-代码

1、判断传入值非空检验; 2、判断过账日期是否允许在当前期间; 3、判断是否为集采订单业务,是否审批完成; 4、判断是否发布标准成本发布(此业务场景与价格控制3+S有关) 5、保存日志表; 6、判断业务公司订单审批状态; 7、创建STO交货单、集采公司订单过账、STO公司间创建交货单、交货单过账(两步法)、过账失败回滚(冲销交货、删除交货单、冲销集采入库)

qq_32198063的博客 420

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

<互测 day> 11.6 T1 谜团 (mituan)

*PS: 没开long long被卡掉45分,果然出题人的话都不可信QAQ。。(学傻了)与zqsz的互测题 T1 原题 POJ 1845【题目描述】谜团,是夜魇军团一名强大的战士。他来自远古,是一种不可思议的重力生命体,是来自原始黑暗的扭曲声音,在宇宙中的第一丝光线诞生前就存在的深渊化身。他能动用深渊之力将生物的身体污染,使之转化为自身的碎片“虚灵”。 “虚灵”为谜团所控,拥有一定的战斗力。更为恐

Loi_Mapleleaf的小池 532

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

<胡策day> 10.30 T1 小学数学

*PS:突然被小学数学弄得怀疑人生(⊙_⊙)…老师等等我ヾ(>Д<;))))….. 先科普一下 (百度百科) 整除 [zhěng chú] 若整数a除以非零整数b,商为整数,且余数[1] 为零, 我们就说a能被b整除(或说b能整除a),a为被除数,b为除数,即b|a(“|”是整除符号),读作“b整除a”或“a能被b整除”。a叫做b的倍数,b叫做a的约数(或因数)。整除属于除尽的

Loi_Mapleleaf的小池 518

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

<队内胡策>2017.10.18 (DP+tarjan、SPFA+字符串+脑洞、数学)

*这可是我们组自己从网上找题出的一套考试题,虽然有些水,但是个人认为还是很不错啦(〃’▽’〃)!!尤其是我的题面(≖ᴗ≖๑) 多图预警!!

Loi_Mapleleaf的小池 499

<胡策day> 10.3 听说这套题很简单

T1 叫第二题的第一题直接算就好。emmm。。我的方法是把第一个日期往后取整,再把第二个日期往前取整,最后答案加上两个日期中间的日期差qwq。代码#include<iostream> #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> using namespace std;#define ll long long

Loi_Mapleleaf的小池 490

<考试题> codevs 5440 运输计划 (二分+lca+dfs序+树上差分)

*PS:wzd、dcx与cgold他们组的考试题%%%。。。emmmm,本人太懒qwq,题解也写不明白,大部分抄的考试题解。侵删。 题目描述 Description 公元 2044 年,人类进入了宇宙纪元。L 国有 n 个星球,还有 n−1 条双向航道,每条航道建立在两个星球之间,这 n−1 条航道连通了 L 国的所有星球。小 P 掌管一家物流公司, 该公司有很多个运输计划,每个运输计划形如:有一艘物流

Loi_Mapleleaf的小池 478

<考试题> bzoj 1821 部落划分 (二分、最小生成树)

*PS:竟然CCCCCE了(눈‸눈) go to the problem Description 聪聪研究发现,荒岛野人总是过着群居的生活,但是,并不是整个荒岛上的所有野人都属于同一个部落,野人们总是拉帮结派形成属于自己的部落,不同的部落之间则经常发生争斗。只是,这一切都成为谜团了——聪聪根本就不知道部落究竟是如何分布的。 不过好消息是,聪聪得到了一份荒岛的地图。地图上标注了N个野人居住的地点(可以看作是

Loi_Mapleleaf的小池 459

<队内胡策> 2017.10.10 (贪心+二分答案+DP)

*56学长们出的题,做的时候觉得好难QAQ,讲完题后自己又打了一遍,开始怀疑起自己的智商T^T。。。好吧就这样吧 _ψ(‥ )

Loi_Mapleleaf的小池 450

< 胡策day> 10.26 T2 人、镜子与墙

*PS:不得不说这个题好恶心啊,注意的细节超多!!!〒▽〒话说这套题是MC和老窦要的吗??? 80个测试点啊QAQ!!!

Loi_Mapleleaf的小池 449

<胡策day> 10.30 T2 树上的战争(倍增lca)

b 【问题描述】 你是能看到第二题的 friends 呢。 ——laekov Hja 和 Yjq 为了抢男

Loi_Mapleleaf的小池 441

<胡策day> 11.1 数学+数学+二分、并查集

*PS: 数学没学好怎么办??开始深深的怀疑人生T1 立方数(cubic)Time Limit:1000ms Memory Limit:128MB题目描述LYK定义了一个数叫“立方数”,若一个数可以被写作是一个正整数的3次方,则这个数就是立方数,例如1,8,27就是最小的3个立方数。 现在给定一个数P,LYK想要知道这个数是不是立方数。 当然你有可能随机输出一些莫名其妙的东西来骗分,因此LYK有

Loi_Mapleleaf的小池 424
上一篇: codevs 1174 靶形数独 (启发式搜索)
下一篇: codevs 1026 逃跑的拉尔夫
Loi_Mapleleaf
博客等级 码龄10年 17粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值