21/7/2012 ICPC培训 第六天

别再手动算频谱了!用这个在线FFT工具,5分钟搞定JSON/CSV数据分析 本文介绍了一款高效的在线FFT工具,帮助用户快速分析JSON/CSV格式的时域数据,5分钟内完成频谱分析。通过傅里叶变换(FFT)算法,大幅提升计算效率,解决传统手动计算的痛点,适用于工业振动分析、设备故障诊断等场景。 阅读详情

今天本来安排刷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很抽象,得加强练习了。。。

 

 

 

 

 

 

 

 

某讯天御滑块验证码逆向实战:从参数解析到环境对抗 本文详细解析了某讯天御滑块验证码的逆向工程实战技巧,从关键参数解析到浏览器环境模拟对抗。重点介绍了collect、eks等参数的逆向思路,以及如何通过puppeteer等工具补全环境检测,帮助开发者有效突破验证码防护。文章还提供了常见错误解决方案和性能优化建议,是验证码逆向领域的实用指南。 阅读详情

相关推荐

MATLAB实战:用ARMAX模型搞定电力系统惯量实时评估(附完整代码)

本文详细介绍了如何利用MATLAB中的ARMAX模型实现电力系统惯量的实时评估。通过系统辨识技术,结合电力系统的动态特性,提供从数据预处理、模型辨识到实时评估的全流程实战指南,并附完整代码。ARMAX模型在新能源高渗透率电网中展现出显著优势,误差较传统方法降低50%以上。

b9c0d的博客 400

19/7/2012 ICPC培训 第四天

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

ON THE WAY TO GEEK 4078

STM32通过ESP8266连接机智云APP(第二讲,烧录固件并测试)

今天与大家分享STM32通过ESP8266连接机智云APP,并完成数据的上传下发第二讲。带大家一起烧录机智云固件到ESP8266并且将其通过机智云串口助手与APP进行测试。

qq_63267523的博客 1425

25/7/2012 ICPC培训 第十天

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

ON THE WAY TO GEEK 3880

HFSS入门学习笔记——微带一分四功分器的设计与仿真

功率分配器是将输入信号功率分成相等或不相等的几路功率输出的一种多端口无源微波网络,用于功率分配和功率合成。工程上常用的微带功分器有T型功分器和威尔金森功分器。经典的威尔金森功分器有几个缺点:①、多应用于低频段,高频段时,波长会与隔离电阻的尺寸相比拟,此时需要考虑电阻的分布参数效应;②、大功率应用时,隔离电阻的耗散功率要很大,因此隔离电阻的体积也会比较大。

weixin_42126696的博客 2万+

Rust嵌入式开发环境搭建指南(基于Stm32+Vscode)

本文档旨在指导开发者如何搭建基于Rust语言的STM32嵌入式开发环境。相比传统的C/C++开发方式,Rust提供了更强的内存安全保障和现代化的语言特性,非常适合嵌入式系统开发。本指南将详细介绍从环境搭建到项目配置的全过程,特别关注VSCode作为IDE的配置以及STLink和DAPLink调试器的使用。

u014627020的博客 2601

23/7/2012 ICPC培训 第八天

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

ON THE WAY TO GEEK 3484

把 LangGraph 当“工作流引擎”用:与传统 BPM 的差异与融合策略

首先,我们来回顾一下有限状态机(FSM)的基本定义——一个 FSM 可以用一个五元组MQΣδq0FMQΣδq0​FQQQ有限状态集合,包含 FSM 所有可能的状态;Σ\SigmaΣ有限输入字母表,包含 FSM 所有可能的输入;δ\deltaδ状态转移函数,定义了 FSM 从当前状态q∈Qq \in Qq∈Q接收输入σ∈Σσ∈Σ后,转移到的下一个状态q′∈Qq' \in Qq′∈Q,即δQ×Σ→QδQ×Σ→Q。

AI 原生应用开发的博客 227

24/7/2012 ICPC培训 第九天

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

ON THE WAY TO GEEK 2932

《UDS协议从入门到精通》系列——图解0x34:请求下载

上传下载类服务之0x34-请求下载,图解请求+响应格式,直观易懂,快速上手!!

车载系统攻城狮 4931

SOC估算方法之(OCV-SOC+安时积分法)

此方法主要参考。

m0_61973119的博客 938

20/7/2012 ICPC培训 第五天

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

ON THE WAY TO GEEK 2847

机器学习势能(MLPs) 第一章 基础理论与核心概念 第二章 数据生成与训练集构建

密度泛函理论(DFT)作为现代计算材料科学的基石,通过求解Kohn-Sham方程在电子结构层面提供可靠的势能面信息。然而,其计算复杂度随体系电子数呈O(N3) 至O(N4) 增长,对于包含数百个原子的体系,单点计算往往需消耗数小时至数天的计算资源。这一瓶颈严重限制了分子动力学模拟的时间尺度,传统DFT-MD通常仅能覆盖皮秒量级,远不足以观测扩散、相变等慢动力学过程。经验力场通过解析函数形式描述原子间相互作用,实现了经典力学的计算效率,但其参数化过程高度依赖物理直觉与经验调参。

VectorShift的博客 184

22/7/2012 ICPC培训 第七天

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

ON THE WAY TO GEEK 2846

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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

蓝牙模块HM-10手册

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

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

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

ON THE WAY TO GEEK 1576

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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、付费专栏及课程。

余额充值