27/7/2012 ICPC培训 第十二天

CDR插件开发之CPG插件017 - 在VS2019中实现CPG插件调试(自动写入CPG、自动启动CDR) 在上篇文章中,讲解了图像导出实例:当文档打开后,自动导出当前页面的图像到系统临时文件夹。在代码编写过程中,导出图像路径变量tmpFileName 被修改了很多次,有没有办法实现调试功能,通过控制台打印变量,而不用编译成CPG后再通过消息框来调试?当然是可以的。本篇作为单独篇,以CDR X8版本为例,讲解CPG插件在VS2019中实现调试的具体方法。 工程搭建准备 按照惯例,本篇文章的序号为017,请直接拷贝上一个工程016-export-image(拷贝前最好清理掉 Debug、x64等编译目录.. 阅读详情

眨眼培训就过了大半喽奋斗。我还是很喜欢的。。。

上午做了HDU2112

还是求最短路径的,不同的是这题没有直接给地点标号,需要我们来处理。

这题要注意一下集中情况:

1、start、end地点在下面的路径中不一点会出现,所以在标号时需要对这两个点也处理。

2、无向图的处理可能会增加时间复杂度,但不会改变最短路径的长度,因为除非是负权边,

否则a->b被处理过,b->a一点不会被处理了。

3、这题的建图。利用temp[][]表将地点不重复地存储起来,建立地点和数字标号间的唯一对应

关系。然后在查找建图。

4、SPFA算法,不仅仅可以求出最短路径,还可以判断两点是否连通。(有向图、无向图均可)

代码:

#include<iostream>
#include<vector>
#include<queue> 
using namespace std;

const int maxRoad=10001;  //路径数 
const int maxSize=151;    //地点数 
const int maxLen=31;      //地点的最大长度 
const int INF=0x7fffffff;

struct node   //边 
{
    char start[maxLen];
    char end[maxLen];
    int from;
    int to;
    int cost;
}edge[maxRoad];
 
int minPath[maxSize];   //最短路 
bool inQ[maxSize];       //是否在队列中 
int numEdge,numAdress,from,to;  //路径数、点数、起点、终点 
char start[maxLen],end[maxLen];
char temp[maxSize][maxLen];    //不重复存放地存放每个点 
vector<node> myV[maxSize];     //连接表 

int findIndex(char c[])   //找地点的标示 
{
    for(int i=0;i<numAdress;i++)
    {
        if(strcmp(c,temp[i])==0)
        {
            return i;
        }
    }
    
    return -1;
} 
     
void input()
{
    numAdress=0;
    getchar(); 
    scanf("%s%s",&start,&end);
    
    //如果不在temp[][]表中就放进去 
    if(findIndex(start)==-1) strcpy(temp[numAdress++],start);
    if(findIndex(end)==-1) strcpy(temp[numAdress++],end); 
    
    for(int i=0;i<numEdge;i++)
    {
        getchar(); 
        scanf("%s%s%d",&edge[i].start,&edge[i].end,&edge[i].cost);
        
        if(findIndex(edge[i].start)==-1)  strcpy(temp[numAdress++],edge[i].start);
        if(findIndex(edge[i].end)==-1) strcpy(temp[numAdress++],edge[i].end);
    }
} 

void buildMap()
{
    for(int j=0;j<maxSize;j++)
    {
        myV[j].clear();
    }
     
    from=findIndex(start);
    to=findIndex(end);
    
    for(int i=0;i<numEdge;i++)
    {
        //建立无向图 
        edge[i].from=findIndex(edge[i].start);
        edge[i].to=findIndex(edge[i].end);  
        myV[edge[i].from].push_back(edge[i]); 
        
        edge[i].to=findIndex(edge[i].start);
        edge[i].from=findIndex(edge[i].end);  
        myV[edge[i].from].push_back(edge[i]);
    }
}        

void SPFA()
{
    for(int i=0;i<maxSize;i++)  minPath[i]=INF;
    minPath[from]=0;
    memset(inQ,false,sizeof(inQ));
    inQ[from]=true; 
    
    queue<int> myQ;
    myQ.push(from);
     
    while(!myQ.empty())
    {
        int from,to,cost;
        from=myQ.front();
        myQ.pop();
        
        for(int j=0;j<myV[from].size();j++)
        {
            to=myV[from][j].to;
            cost=myV[from][j].cost+minPath[from];
            
            if(cost<minPath[to])
            {
                minPath[to]=cost;
                
                if(!inQ[to])
                {
                    inQ[to]=true;
                    myQ.push(to);
                }
            }
        }
        
        inQ[from]=false; 
    }
    
    if(minPath[to]!=INF) printf("%d\n",minPath[to]);
    else printf("-1\n"); 
}    
     
int main()
{
    while(scanf("%d",&numEdge)==1,numEdge!=-1)
    {
        if(numEdge==0)
        {
            getchar(); 
            scanf("%s%s",&start,&end);
            
            if(strcmp(start,end)==0) printf("0\n"); 
            else printf("-1\n");
            
            continue; 
        }
         
        input();
        
        buildMap(); 
        
        SPFA();
    }
    
    system("pause");
    return 0;
} 


然后下午和晚上就一直在做HDU1385了。

可是还没搞定呢。。。鄙视

这题不仅要求解最短路径,还要计算节点处费用。不仅如此,还要把路径打印出来。

更坑爹的是,如果有多条最短路径,只打印按字母表排序最小的。。。

一直WA,各种不解,最不解的是网上有些代码明明不对,依旧A了。。。

(打印最短路径,大家可以到这里看看:SPFA最短路径

就把我的WA代码贴下:

#include<iostream>
#include<vector>
#include<queue>
#include<stack>
#include<cstring>
using namespace std;

const int maxn=1001;
const int INF=0x7fffffff;

struct edge
{
    int to;
    int cost;
};

int mat[maxn][maxn];
int waste[maxn];
int sourceFirst[maxn]; 

vector<edge> myV[maxn];  //利用临界表存储图 
int numNode;             //点数
int minPath[maxn];       //最短路
int start,end;           //起点、终点 
bool inQ[maxn];          //是否入队 
     
void inputItial()
{
    int i,j;
    
    for(i=1;i<=numNode;i++)  //输入距离矩阵 
    {
        for(j=1;j<=numNode;j++)
        {
            scanf("%d",&mat[i][j]);
        }
    }
    
    for(i=1;i<=numNode;i++)   //输入中转站的费用 
    {
        scanf("%d",&waste[i]);
    }
    
    for(i=0;i<maxn;i++)  //清空再使用 
    {
        myV[i].clear();
    }
    
    for(i=1;i<=numNode;i++)   //建图 
    {
        for(j=1;j<=numNode;j++)
        {
            if(i==j || mat[i][j]==-1) continue;

            edge e;
            e.cost=mat[i][j]+waste[i];
            e.to=j;
            myV[i].push_back(e);          
        }
    }
}

void output(int start,int end)
{
    printf("From %d to %d :\n",end,start);  
    printf("Path: %d",end); 
    
     while(sourceFirst[end]!=0)
     {  
          printf("-->%d",sourceFirst[end]); 
          end=sourceFirst[end];
     }
     printf("\n");
}          
       
void SPFA(int start,int end)   //最短路径快速算法 Shortest Path Faster Algorithm
{
        memset(inQ,false,sizeof(inQ));
        inQ[start]=true;
        for(int j=0;j<maxn;j++) minPath[j]=INF;
        minPath[start]=0;
        
        queue<int> myQ;
        myQ.push(start);
   
        int now,to,cost;
        while(!myQ.empty())
        {
            now=myQ.front();
            myQ.pop();
            sourceFirst[start]=0;
            
            for(int k=0;k<myV[now].size();k++)
            {
                to=myV[now][k].to;
                cost=myV[now][k].cost+minPath[now];
             
                if(minPath[to]>cost)
                {
                    sourceFirst[to]=now;    //记录下to的来源为now 
                     
                    minPath[to]=cost;
                     
                    if(!inQ[to])
                    {
                        inQ[to]=true;
                        myQ.push(to);
                    }
                }
                else if(minPath[to]==cost)
                {
                    if(now<sourceFirst[to])
                    {
                        sourceFirst[to]=now;
                    }
                } 
            }
            
            inQ[now]=false;
        }
        
        if(start==end)
        {
            printf("From %d to %d : \n",start,end);
            printf("Path: %d\n",start);
            printf("Total cost : 0\n\n");
        }
        else
        {
            output(start,end);
            printf("Total cost : %d\n\n",minPath[end]-waste[start]);
        }
}
         
int main()
{
    while(scanf("%d",&numNode)==1,numNode)
    {
        inputItial();
        
        while(scanf("%d%d",&start,&end)==2,start!=-1&&end!=-1)
        {
            SPFA(end,start);
        }
    }
 
    system("pause");   
    return 0;
}

通过上次的比赛,我觉得做题还是得扎实。

做了一题完全可以给自己加点难度。什么数据范围搞大点、输出格式严格点、

时间放短点。。。

这样可以引导自己更深入的思考问题,个人觉得可能比你一直做模板题,浑浑噩噩的效果

会好点的。这也是我给自己提的要求。所以,我一定要把HDU1385搞定的呀。

 

 

如何跑通SuperPoint+LightGlue的训练代码使用gluefactory进行训练和评估? 🏆本文收录于专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家!持续更新中,up!up!up!! 阅读详情

相关推荐

思科路由器IPv6各种路由协议配置

思科路由器IPv6路由协议配置:1、静态路由配置;2、默认路由配置;3、RIPng路由配置;4、OSPFv3路由配置。

weixin_41687096的博客 6544

19/7/2012 ICPC培训 第四天

今天只刷出来三题。 明天下午组内又有测试了,肿么办呀,搜索和DP。 说说今天吧。 这三题都是以前看过但没做出来的题,也根本就没尝试去做,就觉得做不出来! 第一题(HDU4039)。 这题花了6个小时左右。其实,前两个小时代码就搞定了,可是有一处小错,一直TLE呀。 在Floyd()中把两个if判断条件没写好呀。明明算法是对的,可是代码逻辑就是没能那样写出来! 这种错误还很难找!!!

ON THE WAY TO GEEK 4078

海康工业相机SDK开发实战:从环境搭建到实时图像采集(附避坑指南)

本文详细介绍了海康工业相机SDK在Windows平台上的开发实战流程,涵盖从环境搭建、运行时库路径配置到实时图像采集的全过程。重点解析了MVS SDK部署、设备连接、参数设置及图像处理等核心环节,并提供了实用的避坑指南和错误排查方法,帮助开发者构建稳定的机器视觉系统。

weixin_29248611的博客 849

25/7/2012 ICPC培训 第十天

啦啦啦 又来喽 今天一直在做小生成树问题。总共刷了7题,用来两种算法,prime和kurskal。 而且还都是HDU畅通工程系列的。   上午把prime算法的模板谢了出来,然后用模板刷了三题。 HDU1863、HDU1233、HDU1879 由于代码神似呀,这里只贴1863的代码了。 代码: #include #include #include using namespace

ON THE WAY TO GEEK 3880

JavaScript China城市联动

中国全城市的地址省,市,县 <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title></title> <script src="jquery.js"></script> <script src="json.js"></...

唯唯同学 2241

(12)单相降压自耦变压器的等效电路和仿真模型

本文根据电机学基本原理,从单相双绕组变压器的接线方式出发,建立基本方程并导出T型等效电路。然后将双绕组变压器演变成一种降压自耦变压器,详细地建立起单相降压自耦变压器的数学模型以及导出相对应的等效电路,最后用Matlab/simulink的simscape元件库元件建立了基于单相自耦变压器的T型等效电路的仿真模型。用实例仿真验证了本文工作的正确性。

weixin_45670943的博客 1046

23/7/2012 ICPC培训 第八天

今天真的都有点不想写了!!! 上午做一题(HDU1829),没刷出来。下午在做一题(HDU3635),还是没刷出来。。。 这两题都是关于并查集的。题目可以理解,大部分要求都能实现,可是就一直卡在一些细节上! 或者WA,或者狠下心来暴力一把TLE。。。 纠结呀!!!   不过今天还是有收获滴。 今天把上次比赛的题目都搞定啦。感谢唐爽童鞋、张浩然童鞋的指导。 我还发现B题的一个错,标程

ON THE WAY TO GEEK 3484

即插即用篇 | 手把手教你 YOLOv11 添加注意力机制 | 适用于【检测任务】【分类任务】【分割任务】【关键点任务】| 20+ 种全打通!

即插即用篇 | 手把手教你 YOLOv11 添加注意力机制 | 适用于【检测任务】【分类任务】【分割任务】【关键点任务】| 20+ 种全打通!

Coding... 2835

21/7/2012 ICPC培训 第六天

今天本来安排刷DP的,可是各种不懂呀!!!勉强刷出两道题! 眼看没做出题,还是刷两道二分查找吧。 其他的就是讲解了昨天下午的比赛题目。各种思路,搞得我甚是膜拜。每种思路都很简洁, 把需要解决的问题抽象的很好很好。为啥我就不能想出来呢???无语吆。。。 不过膜拜归膜拜,有了思路得在这两天把没做出来的几题刷了。 最后,晚上,张浩然同学给我们简单介绍了下STL。   还是来讲讲我做的题吧。

ON THE WAY TO GEEK 2963

材料带隙预测(图神经网络)(⭐⭐)—— 用晶体图网络预测钙钛矿材料的能带隙,加速光伏材料筛选。技术栈:CGCNN、MEGNet、Materials Project数据集

钙钛矿太阳能电池以其高效率、低成本的优势迅速崛起,但传统“试错法”材料筛选效率极低,严重制约了光伏技术的迭代速度。近年来,基于图神经网络的材料带隙预测方法,特别是晶体图神经网络(CGCNN)和材料图网络(MEGNet),为这一问题提供了革命性的解决方案。本文系统梳理了材料带隙预测从传统计算到深度学习的演进历程,深入剖析了CGCNN与MEGNet的架构设计、数学原理及创新机制,详细阐述了Materials Project数据集的构建、特征工程与处理策略。

2201_76125393的博客 50

ABAP CDS SELECT, parameters 全面解析:把参数化视图玩明白(含可运行示例)

这篇技术博客介绍了ABAP CDS中参数化视图的用法与实践。文章从业务需求出发,解释了参数化视图的必要性,并详细说明了语法规则、参数类型匹配、视图内部参数引用等关键点。重点展示了在JOIN和ASSOCIATION中传递参数的写法,提供了航线分析的完整业务案例和可运行代码示例。文章还总结了视图实体与DDIC视图的差异、会话变量使用技巧等实践要点,特别强调了JOIN中必须显式传参的语法要求。通过真实场景演示,帮助开发者掌握参数化CDS的高效应用。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 365

24/7/2012 ICPC培训 第九天

又来吐吐糟啦。。。 今天还算顺利,总共刷出了5题。 前两题是并查集,就是昨天没搞定的。后面三题都是最短路径了。   简单说说这几题吧。 关于并查集的两题其实都是卡在了路径压缩的处理上。很坑爹的说。其实也就是在路径压缩时 利用数组记录下一些信息。在需要的时候在合理的计算出来。 其实,挺难理解的。。。 我也只是一知半解了。。。   第一题(HDU1829) 主要是判断两个人是否在

ON THE WAY TO GEEK 2932

中远麒麟堡垒机 SQL注入漏洞复现

中远麒麟堡垒机/baoleiji/api/tokens接口处存在sql注入漏洞,未经身份认证的攻击者可通过该漏洞获取数据库敏感信息及凭证,最终可能导致服务器失陷。

0xSec 2996

20/7/2012 ICPC培训 第五天

今天是第二次内部比赛。 共六题,刷出来两题。都是搜索。排在第二名,第一刷出3题,然后有好几个刷出2题的。 还需努力呀!(明天看过结题报告后再把题目、代码、测试数据传到共享里) 另外,今天还刷了HDU上的2题,依旧都是搜索。明天开始做DP了。大神说要从背包开始。 第一题(HDU1181) 题目意思很好懂。就是输入一系列单词,每个单词的首尾字母可以到达,问是否能从b->m。 我的做法是

ON THE WAY TO GEEK 2847

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

22/7/2012 ICPC培训 第七天

又来吐糟了啦。。。 今天照样刷出来的题不多。勉强也只能算个三题半吧!   上午在做上次比赛的B题。 要用数据结构,vector和deque。也第一次感受到了数据结构的魅力,的确把时间复杂度优化的很好。 按照出题者的思路写出了代码,TLE了。结果你懂得,各种纠结,再也想不到如何优化了。。。 然后,就在刚才,把出题人-—唐爽童鞋的代码拿来,居然也TLE了。神马情况。   快到中午,眼看

ON THE WAY TO GEEK 2846

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

26/7/2012 ICPC培训 第十一天

又来喽 汇报下今天吧 上午就写了个强连通算法,tarjan算法,其实还是不太理解的,就是按葫芦画瓢。。。 刷了HDU上的一强连通模板题1269,就是判断有向图是否是连通的,也就是判断连通分量是否 只有一个。 代码: #include #include #include using namespace std; const int maxn=10001; bool inStack[m

ON THE WAY TO GEEK 1732

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

1/8/2012 ICPC培训 第十七天

有两天没写喽,最近状态不太好,。。。 还是以前的老问题,老是感觉自己不咋的,快没机会了,开学就大三了,也在HDU上做了 400+题了,可是的确不咋的呀。比赛一直不好,身边一群大一,都不错,唯独几个大二, 大部分是我同班同学,高我若干数量级。。。 怎么说呢。这就是我喜欢干的事,就是喜欢AC,即使我再做400+,甚至1000+,也不见得 能咋的,打快金牌回来,希望微乎其微。但我还是喜欢,这不

ON THE WAY TO GEEK 1576

18/7/2012 ICPC培训 第三天

今天看了五题,刷出来四题。各种无语呀! 首先看第一题吧。(HDU1217) 这题花了整整一上午,就快4个小时了。结果还是在百度的配合下搞定的! 本以为是简单的字符串操作,首先的想法也就是那样的。结果才发现根本的不对。然后用深搜, 结果TLE。当然,深搜也是错的。因为,一次搜索一个节点只能用一次!或许可以用多次。题目 没规定。最后,还是度娘帮着解决了。Floyd算法,三重for循环。当然,

ON THE WAY TO GEEK 1439

29/7/2012 ICPC培训 第十四天

又来喽 嗯,昨天给自己放了一天假哈,所以也就没啥好些的了。 今天呢,上午刷了一题,外加写了SPFA算法的代码实现,包括打印最短路径。下午呢, 刷了一题。并且,这两题都是SPFA求解最短路径相关的。晚上,就是大神来上课了, 不过几乎听不懂的说,所以也就没听了。。。   第一题(HDU1385),也就是上次做了一天没A的。 最后在建图的时候采用了反向建图,莫名奇妙就A了。为什么反向建图,

ON THE WAY TO GEEK 1152

16/7/2012 ICPC培训 第一天

这是我首次参加此类培训。心里还是有点小激动的。 据说明天下午培训内部会有一场小比赛,希望自己给力呀。 汇报下今天吧: 1、看了4道题,刷了3道题。 其中,前2道是上午做出来的。 第一道是水题(HDU1201),讲究的是对一些基本知识的把握,没有啥太难的算法。 第二题是01背包(HDU1203),和往常不一样的是这里算的是概率,还要反着想。你要算至少拿到 一个学校的offer最大概率,

ON THE WAY TO GEEK 1068

17/7/2012 ICPC培训 第二天

今天上午看了两题,刷出来一题,耗时两个小时。另外那题也花了一个半小时。 1、刷掉的题(HDU1212)。 这题是求模。不过数会很大。我用的是处理字符串,找规律。一步步缩小数。 主要思想就是:用一个字符串数组存下那个大数。然后从后到前每8位取成一个int数(字符串到整数的 转换),存放在一个整型数组内。然后依次对这个整型数组求模。要注意的是,整型数组从后向前第一 位要模b一次,第二位两次,

ON THE WAY TO GEEK 1042

视频隐私脱敏工程化:CSRT/KCF追踪算法在本地推理中的实现与边界

在短视频内容合规审查中,动态遮挡(Dynamic Masking)是高频且高耗时的环节。传统手动关键帧打码不仅效率低下,且在目标快速移动或遮挡时极易出现遮罩漂移。本文从计算机视觉工程角度,解析基于CSRT与KCF算法的目标追踪方案在视频隐私处理中的技术路径、性能权衡及落地实践。

Mysssone的博客 352

把 KV Cache 压到 FP4:BitDecoding-FP4 的算法-系统协同设计复盘

长上下文推理卡在KV Cache的显存与带宽上,而现有FP4方案要么精度崩、要么速度废。这篇文章复盘BitDecoding-FP4如何用三个算法补丁加一个系统重构,在B300上把服务吞吐提升2.4–3.0倍,精度几乎不掉。

helloagent的博客 312

【算法拾光】链表 哈希表|K个一组翻转链表 + 两数之和

K个一组翻转链表需分段反转,借助哑节点与前驱指针维护连接,避免断链;两数之和利用哈希表实现O(1)查找,空间换时间,高效定位目标组合。前者考察链表指针操作,后者聚焦映射关系构建,均为面试高频题。

wuqingyigexiaoba的博客 333

排序算法深度笔记(下):非比较类排序的线性突破与工程边界

排序算法时间复杂度额外空间复杂度稳定性是否基于比较选择排序O(N^2)(O(1))不稳定是冒泡排序O(N^2)(O(1))稳定是插入排序O(N^2)(O(1))稳定是归并排序O(N\log N)(O(N))稳定是快速排序O(N\log N)O(log N)不稳定是堆排序O(N\log N)O(1)不稳定是计数排序(O(N + M))O(M))稳定否基数排序O(N)稳定否桶排序平均O(N) / 最坏O(N^2)

2401_87069538的博客 606

优选算法:分治-归并排序

交易逆序对的总数

Wangshijie1015的博客 148
上一篇: 26/7/2012 ICPC培训 第十一天
下一篇: 单源最短路径之SPFA算法实现
lulipeng_cpp
博客等级 码龄15年 169粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值