21/7/2012 ICPC培训 第六天

408计算机复试专业课问答汇总 阅读详情

今天本来安排刷DP的,可是各种不懂呀!!!勉强刷出两道题!

眼看没做出题,还是刷两道二分查找吧。

其他的就是讲解了昨天下午的比赛题目。各种思路,搞得我甚是膜拜。每种思路都很简洁,

把需要解决的问题抽象的很好很好。为啥我就不能想出来呢???无语吆。。。

不过膜拜归膜拜,有了思路得在这两天把没做出来的几题刷了。

最后,晚上,张浩然同学给我们简单介绍了下STL。

 

还是来讲讲我做的题吧。

第一题(HDU1881)

这题是01背包的变形。思路和01背包很像。

我搞不明白为什么要先对各个bg按照离校时间由小到大排序,然后再用01背包的方法解决?

期待,看到博文的大神赐教哇。。。

代码:

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

const int MAX=31;

int dp[MAX*MAX*2];
int maxTime,n;

struct node
{
    int h,l,t;
    bool operator < (const node &tmp) const
    {
        return t<tmp.t;
    } 
}temp[MAX];


//bool cmp(node a,node b)
//{
//    return a.t<b.t;
//}

void input()
{
    maxTime=0;
    
    for(int i=0;i<n;i++)
    {
        cin>>temp[i].h>>temp[i].l>>temp[i].t;
        
        maxTime=maxTime>temp[i].t?maxTime:temp[i].t;
    }
}

void pack()
{
    memset(dp,0,sizeof(dp));
    
    for(int i=0;i<n;i++)
    {
        for(int j=maxTime;j>=temp[i].l;j--)
        {
            if(temp[i].t>=j && dp[j]<dp[j-temp[i].l]+temp[i].h)
            {
                dp[j]=dp[j-temp[i].l]+temp[i].h;
            }
        }
    }
    
    int result=-1;
    for(int k=0;k<=maxTime;k++)
    {
        result=result>dp[k]?result:dp[k];
    }
    
    cout<<result<<endl;     
}
  
int main()
{
    while(cin>>n,n>=0)
    {
        input();
        
        //sort(temp,temp+n,cmp);
        sort(temp,temp+n); 
        
        pack();
    }
    
    return 0;
}


 

第二题(HDU2141)

看到这类题,爆搜很通用,前提是数据量不太大。这题显然爆搜超时。

如何优化呢?可以对C二分,也可以对A+B二分。对A+B二分时间性能更好点。

代码:

#include<iostream>
#include<cstring>
#include<algorithm> 
using namespace std;

const int MAX=500;

int a,b,c,quary,ans,cas=1;
int A[MAX],B[MAX],C[MAX],D[MAX*MAX];
bool flag; 

void input()
{
    int i;
     
    for(i=0;i<a;i++)
    {
        scanf("%d",&A[i]);
    } 
    for(i=0;i<b;i++)
    {
        scanf("%d",&B[i]);
    }
    for(i=0;i<c;i++)
    {
        scanf("%d",&C[i]);
    }
}

void preDeal()
{
    int k=0;
     
    for(int i=0;i<a;i++)
    {
        for(int j=0;j<b;j++)
        {
            D[k++]=A[i]+B[j];
        }
    }
    
    sort(D,D+k); 
}

void binSearch(int low,int high)
{
    int mid=(low+high)/2;
    
    if(low+1==high && D[mid]!=ans) return;
     
    if(D[mid]==ans)
    {
        flag=true;
        return;
    }
    else if(D[mid]<ans)
    {
        binSearch(mid,high);
    }
    else
    {
        binSearch(low,mid);
    }
}
 
void deal()
{
    scanf("%d",&quary);
    printf("Case %d:\n",cas++);
     
    int temp,i,j;
    
    for(i=0;i<quary;i++)
    {
        scanf("%d",&temp);
        
        flag=false; 
        for(j=0;j<c;j++)
        {
            if(flag) break;
             
            ans=temp-C[j];
            
            binSearch(0,a*b-1);
        }
        
        if(flag) printf("YES\n");
        else printf("NO\n");
    }
}       
         
int main()
{
    while(cin>>a>>b>>c)
    {
        input();
        
        preDeal();
        
        deal();
    }
    
    return 0;
} 


 

第三题(HDU2199)

这题是解方程。

这个方程在0—100范围内明显是递增的。所以,输入的y太大或太小就可以直接判断是No soulution!了。

另外,这题不能1Y的原因在于你选择的精度大小。刚开始我用的精度是1e-7,结果就TLE了。然后改成

1e-5,0MS过了。

代码:

#include<iostream>
#include<iomanip> 
#include<cmath>
using namespace std;

const double accurate=1e-5;  //这里精度写成1e-7,TLE了 

double x,y;
 
double calculate(double x)
{
    return 8*pow(x,4) + 7*pow(x,3) + 2*pow(x,2) + 3*x + 6 ;
}

void binSearch(double low,double high)
{
    double mid=(low+high)*1.0/2.0;
    
    if(fabs(calculate(mid)-y)<=accurate)
    {
        x=mid; 
        return;
    }
    else if(calculate(mid)<y)
    {
        binSearch(mid,high);
    }
    else
    {
        binSearch(low,mid);
    }
}     
     
int main()
{
    int cas;
    
    scanf("%d",&cas);
     
    while(cas--)
    {
        scanf("%lf",&y); 
        
        if(y<6 || y>807020306)
        {
            printf("No solution!\n");
            continue;
        }
        
        binSearch(0,100);
        
        cout<<setiosflags(ios::fixed)<<setprecision(4)<<x<<endl;
    }
    
    return 0;
} 

 

最后一题是昨天下午比赛的一道DP题,在同学的帮助下找到状态转移方程了!

然后晚上出题的同学又讲了一种完全不同构造方程的思路。可见的是DP借助数组来表达状态,

你给数组赋予不同的含义也就可以找到不同大方程。

DP很抽象,得加强练习了。。。

 

 

 

 

 

 

 

 

librealsense2 camera.so: undefined symbol:ZN2cV3MatC1EV解决笔记记录 先参考的这个兄弟的办法虽然没解决但是提供了大方向感谢; realsenseD400系列相机报错:undefined symbol: _ZN2cv3MatC1EiiiRKNS_7Scalar_IdEE解决方案 后解决办法参考 No GPU usage on jetson xavier NX · Issue #2326 · IntelRealSense/realsense-ros · GitHubOpenCV_DIR" to a directory containing one of the above f 阅读详情

相关推荐

ROS2初级面试题汇总

总结和收集了一些关于ros2的问题和解答记录

qq_57633442的博客 5576

19/7/2012 ICPC培训 第四天

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

ON THE WAY TO GEEK 4078

windows系统下,如何为comfyui如何安装triton

​ 有些加速插件、模型在安装的时候,比如说sageattention的安装,就需要提前安装triton这个包,不过这个包有点特殊,windows下略微不好装,经常会装失败。 🎠如何安装 之前也有人介绍过,要到github上找个wheel文件,找到对应的版本安装下就好了。 问题是:https://github.com/woct0rdho/triton-windows/releases 这个git地址上,已经找不到wheel文件了... ​

聚梦小课堂 4503

25/7/2012 ICPC培训 第十天

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

ON THE WAY TO GEEK 3880

Fastwhisper + Pyannote 实现 ASR + 说话者识别

最近在研究ASR相关的业务,也是调研了不少模型,踩了不少坑,ASR这块,目前中文普通话效果最好的应该是阿里的modelscope上的中文模型了,英文的话,还是非whisper莫属了,而且whisper很变态,粤语效果也还不错,因此,如果实际业务中需要涉及到不同的语言,还是更推荐whisper多一点faster-whisper是使用CTranslate2对OpenAI的Whisper模型的重新实现,CTranslate2是一个用于Transformer模型的快速推理引擎。

qq_44193969的博客 1万+

STM32掉电保存配置参数技巧

本文介绍了使用STM32内置备份寄存器(BKP)实现掉电保存配置参数的方法。相比外接EEPROM或Flash,备份寄存器无需外设但存储容量有限,需通过VBAT引脚连接纽扣电池供电。文章详细说明了初始化步骤,包括使能PWR时钟、允许访问备份寄存器等操作,并提供了RTC初始化的代码示例。同时介绍了HAL库中读写备份寄存器的函数使用方法,包括HAL_RTCEx_BKUPWrite和HAL_RTCEx_BKUPRead函数的具体参数和调用示例。该方法适用于需要小容量数据掉电保存的应用场景。

hanhanhan233的博客 948

23/7/2012 ICPC培训 第八天

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

ON THE WAY TO GEEK 3484

23、变压器与电抗器知识详解

本文详细介绍了电力变压器的基本原理、等效电路、测试方法及多种运行方式,涵盖双绕组与自耦变压器的建模与应用。深入探讨了变压器极性判断、并联运行条件、电压调节技术,并扩展至非线性、磁滞、EMTP和高频模型,用于瞬态分析。同时阐述了地磁感应电流(GIC)的影响及对偶建模方法。最后系统介绍了各类电抗器的应用场景与特性,包括限流、无功补偿、滤波及特殊用途电抗器,全面覆盖电力系统中变压器与电抗器的核心知识。

eee77的博客 150

24/7/2012 ICPC培训 第九天

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

ON THE WAY TO GEEK 2932

筹码峰五句口诀,看懂主力的秘密动作!(附实战图示)

筹码图的价值在于,它不像K线那样容易造假。主力可以骗线,但骗不了筹码分布。主力在不在;是吸筹还是出货;接下来是变盘还是震荡。这五句口诀可以说是“筹码阅读的入门圣经”:单峰坚挺变盘在即,双峰对垒高抛低吸;上峰不移主力在跑,多峰林立行情不止;下峰不移不离不弃,筹码识庄稳中取利!📌市场从来不是靠猜,而是靠看清。筹码,就是主力最真实的痕迹。如果你想学会提前布局、跟庄不被甩,学会看筹码峰——这一步必须打牢!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1167

如何解除“无法完成操作 因为文件包含病毒或潜在垃圾软件”

当运行软件遇到“无法完成操作 因为文件包含病毒或潜在垃圾软件”时,如何解决?控制面板-系统和安全-Windows Defender防火墙-自定义设置,将专用网络及公用网络关闭。点击后,选择“病毒和威胁防护”-管理配置。进入安全中心后,选择“病毒和威胁防护”将需要排斥的选项输入后,保存配置即可。2:打开windows安全中心。

笔者从事电信媒体开发多年,愿意将多年的开发经验分享给同行 6万+

20/7/2012 ICPC培训 第五天

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

ON THE WAY TO GEEK 2847

【006】深入了解C++中的进制转换:二进制、八进制、十进制、十六进制

二进制:0~1,以0b开头,bitset< 8 >输出。八进制:0~7,以0开头,oct输出。十进制:0~9,以数字开头,cout默认输出十进制。十六进制:0 ~ 9和A ~ F,以0x开头,hex输出,不区分正负。n进制:0~n-1。C++ 中常见的数字进制有十进制、二进制、八进制、十六进制。从十进制转换到其他进制:二进制:使用除以 2 取余数的方法,将得到的余数倒序排列即为二进制。八进制:使用除以 8 取余数的方法,将得到的余数倒序排列即为八进制。

Lion_Long的博客 2613

22/7/2012 ICPC培训 第七天

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

ON THE WAY TO GEEK 2846

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

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

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

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

ON THE WAY TO GEEK 1576

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

18/7/2012 ICPC培训 第三天

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

ON THE WAY TO GEEK 1439

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

眨眼培训就过了大半喽。我还是很喜欢的。。。 上午做了HDU2112 还是求最短路径的,不同的是这题没有直接给地点标号,需要我们来处理。 这题要注意一下集中情况: 1、start、end地点在下面的路径中不一点会出现,所以在标号时需要对这两个点也处理。 2、无向图的处理可能会增加时间复杂度,但不会改变最短路径的长度,因为除非是负权边, 否则a->b被处理过,b->a一点不会被处理了。

ON THE WAY TO GEEK 1210

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

KXBuild 实战,Windows 编译 Kotlin Multiplatform iOS,真机调试、打包 IPA

KMP 的 iOS 端只能在 macOS 上编?在 Windows 上也能跑,iosApp 的构建、安装和调试交给 KXBuild,Gradle 脚本和 iosApp 工程都不用改。Kotlin Multiplatform iOS 流程:体检、在 Config.xcconfig 填 Team ID 和 Bundle ID、连 iPhone 按 F5,在 VS Code 里同时给 Swift 和 Kotlin 打断点、看跨语言调用栈,Compose Multiplatform 同样适用,打出可上架 ipa。

2501_91373349的博客 249

iOS 为什么没有内存交换分区(swap)

iOS 无传统 swap 分区,因闪存寿命、功耗与延迟敏感,且采用“前台优先、后台可杀”模型。内存紧张时,系统通过内存压缩(compressor)、主动释放缓存及 Jetsam 机制(按优先级杀进程)来回收内存,而非交换至磁盘。此设计确保响应速度与用户体验,虽无 swap,但结合压缩与进程管理,仍能高效应对内存压力。

IT枫斗者的博客 344

macOS 27 升级后,如何用 Xcode 27 继续在 iPhone X(iOS 16)上运行 App?

升级 macOS 27 后,Xcode 27 不再支持 iPhone X(iOS 16)真机调试。通过社区项目 xcode-legacy-device-bridge,将 Xcode 26.6 与 27.0 桥接,生成独立副本,成功实现对 iPhone X(iOS 16.7.16)的构建与运行。需保留原版 Xcode,按指引执行桥接脚本,并处理 WatchKit 校验、Metal 工具链及工程兼容性问题。本方案为实验性,不获官方支持,仅适用于特定版本组合。

Luka的異想世界 311

iOS 上架 App 流程

第一次上架最容易卡在流程顺序。本文把 iOS 上架 App 流程拆成 8 步:登录激活团队、创建 Apple Distribution 发布证书、注册 Bundle ID 配能力、生成 App Store 类型描述文件、建 App、打包上传 ipa、填版本与商店文案截图、选构建版本提交审核,每步讲清做什么、卡在哪、怎么确认,全程 Windows 上用 Appuploader 完成,不用 Mac 和 Xcode,附一条命令串全流程的 CLI 方案。

2501_91373349的博客 145

VS Code + KXApp 开发 iOS 报错排查指南,工程、签名、真机、补全、配置

在 VS Code 里用 KXApp 开发 iOS,报错常不在代码而在环境。本文按失败阶段分五类排查:工程没出现 Xcode 视图(查 .xcodeproj 与 xcode-select)、构建失败(No profiles、Team 签名、CocoaPods 用 .xcworkspace)、真机调试失败(信任、开发者模式、设备未准备好)、没补全或 No such module(等索引、清 clangd 冲突)、设置保存不了(装 xcodeproj gem),每类给现象、日志通道和修法。

2501_91590906的博客 238
上一篇: 20/7/2012 ICPC培训 第五天
下一篇: 22/7/2012 ICPC培训 第七天
lulipeng_cpp
博客等级 码龄15年 169粉丝 130原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值