2015.12 hdu 校赛简易题解

hdu部分题解 hdu 用C++编写的AC代码,大约200多题,里面有编号,部分题目有注释,有兴趣可以下来看下 立即下载

01 The Country List

暴力for过去。

02 Polygon

计算几何模板。

03 The collector’s puzzle

因为盒子能使用多次,排序后取一个最接近的。

#include <bits/stdc++.h>

using namespace std;

#define ll long long 

int a[100010];
int b[100010];

int min3(int a,int b,int c){
    if(a<b){
        if(a<c)return a;
        return c;
    }else{
        if(b<c)return b;
        return c;
    }
}

int main(){
    int n,m;
    while(cin>>n>>m){
        
        for(int i=1;i<=n;i++){
            scanf("%d",&a[i]);
        }
        for(int i=1;i<=m;i++){
            scanf("%d",&b[i]);
        }
        
        sort(a+1,a+n+1);
        sort(b+1,b+m+1);
        b[0]=-1e9;    b[m+1]=1e9;    b[m+2]=1e9;
        
        int pos = 1;
        int ans = 0;
        for(int i=1;i<=n;i++){
            while(b[pos]<a[i] && pos<=m){
                pos++;
            }
            ans+=min3(abs(a[i]-b[pos-1]),abs(a[i]-b[pos]),abs(a[i]-b[pos+1]));
        }
        cout<<ans<<endl;
    }
    return 0;
}

04 Happy Value

最大生成树,拿MST改改就好。

05 Bitwise Equations

贪心。二进制表示下,取n为0的位,填上k。

#include <bits/stdc++.h>

using namespace std;

#define ll long long 

char names[111][22];

int main(){
    int t;
    cin>>t;
    while(t--){
        ll n,k;
        cin>>n>>k;
        
        ll ans = 0;
        ll tmp = 1;
        while(k){
            while(n&tmp){
                tmp<<=1;
            }
            if(k&1)ans|=tmp;
            tmp<<=1;
            k>>=1;
        }
        
        cout<<ans<<endl;
    }
    
    return 0;
}

06 01 Matrix

统计两个方向的前缀和(左,上),然后小到大推出来。

#include <bits/stdc++.h>

using namespace std;

#define ll long long 

char mat[1010][1010];
int L[1010][1010];
int U[1010][1010];
int MAX[1010][1010];
int cnt[1010];
int ans[1010];

int main(){
    int t;
    cin>>t;
    while(t--){
        memset(cnt,0,sizeof(cnt));
        memset(ans,0,sizeof(ans));
        
        int n;
        int m;
        cin>>n>>m;
        for(int i=0;i<n;i++){
            scanf("%s",mat[i]);
            for(int j=0;j<n;j++){
                mat[i][j]-='0';
            }
        }
        
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(mat[i][j]){
                    L[i][j]=1;
                    U[i][j]=1;
                    MAX[i][j]=1;
                    if(i>0){
                        U[i][j]=U[i-1][j]+1;
                    }
                    if(j>0){
                        L[i][j]=L[i][j-1]+1;
                    }
                    if(i>0&&j>0){
                        int tmp=min(L[i][j],U[i][j]);
                        MAX[i][j]=min(tmp,MAX[i-1][j-1]+1);
                    }
                }else{
                    L[i][j]=0;
                    U[i][j]=0;
                    MAX[i][j]=0;
                }
            }
        }
        
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(MAX[i][j])cnt[MAX[i][j]]++;
            }
        }
        
        for(int i=n;i>0;i--){
            cnt[i]+=cnt[i+1];
        }
        
        for(int i=1;i<=m;i++){
            int q;
            scanf("%d",&q);
            printf("%d\n",cnt[q]);
        }
    }
    return 0;
}

07 Pick Game

看完题想都没想写了个miniMax+alapha-beta pruning,结果无限T,都是PKU游戏大赛害的。其实这个题是可以用dp做的。需要把状态编码一下,也就是哪些格子被拿了哪些没有,然后就是状态的范围太大要哈希。

#include <bits/stdc++.h>

using namespace std;

#define ll long long 

const int INF = 1e9;

int v[9][9];

int n,m;
int tot;

int enCode(){
    int p=1;
    int res=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(v[i][j]){
                res|=p;
            }
            p<<=1;    
        }
    }
    return res;
}

bool canPick(int nn,int mm){
    int cnt=0;
    if(!v[nn-1][mm])cnt++;
    if(!v[nn][mm-1])cnt++;
    if(!v[nn+1][mm])cnt++;
    if(!v[nn][mm+1])cnt++;
    return cnt>=2;
}

const int mod = 1000007;

int head[mod+1];
int pre[mod*4];
int dp[mod*4];
int val[mod*4];
int cnt=0;

int find(int x){
    int xx=x%mod;
    for(int i=head[xx];~i;i=pre[i]){
        if(val[i]==x)return dp[i];
        
    }
    return -1;
}

void insert(int x,int data){
    int xx=x%mod;
    pre[cnt]=head[xx];
    head[xx]=cnt;
    val[cnt]=x;
    dp[cnt]=data;
    cnt++;
}

int ab(int dep){
    if(dep>tot)return 0;
    int code = enCode();
    if(find(code)!=-1){
        return find(code);
    }
    
    int res;
    if(dep&1){
        res=-INF;
    }else{
        res=INF;
    }
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(v[i][j] && canPick(i,j)){
                //make
                int tmp=v[i][j];
                v[i][j]=0;
                //
                if(dep&1){    //me
                    res = max(res, ab(dep+1) + tmp);
                }else{        //op
                    res = min(res, ab(dep+1) - tmp);
                }
                //unmake
                v[i][j]=tmp;
            }
            //
        }
    }
    
    insert(code,res);
    return res;
}

int main(){
    int t;
    cin>>t;
    while(t--){
        memset(v,0,sizeof(v));
        memset(dp,0,sizeof(dp));
        memset(head,-1,sizeof(head));
        cnt=0;
        
        cin>>n>>m;
        
        tot=n*m;
        int sum = 0;
        for(int i=1;i<=n;i++){
            for(int j=1;j<=m;j++){
                cin>>v[i][j];
                sum+=v[i][j];
            }
        }
        
        int ans = ab(1);
        cout<<(sum-ans)/2+ans<<endl;
    }
    return 0;
}

08 Study Words

模拟。恰当利用STL。

#include <bits/stdc++.h>

using namespace std;

#define ll long long 

const string os="<oldwords>";
const string ot="</oldwords>";
const string as="<article>";
const string at="</article>";

map<string,int> mp;
set<string> dic;

void fun(string tmp){
    string realStr="";
    int len = tmp.size();
    for(int i=0;i<len;i++){
        if(tmp[i]>='A' && tmp[i]<='Z'){
            tmp[i]+=32;
        }
        if(tmp[i]>='a' && tmp[i]<='z'){
            realStr+=tmp[i];
        }else{
            if(realStr.size() && !dic.count(realStr)){
                mp[realStr]++;
                
            }realStr="";
        }
    }
    if(realStr.size() && !dic.count(realStr)){
        mp[realStr]++;
        realStr="";
    }
}

set<pair<int,string> > ans;

int main(){
    int t;
    cin>>t;
    while(t--){
        dic.clear();
        mp.clear();
        
        string tmp;
        while(cin>>tmp){
            if(tmp==os)continue;
            if(tmp==ot)break;
            for(int i=0;i<tmp.size();i++){
                if(tmp[i]>='A' && tmp[i]<='Z'){
                    tmp[i]+=32;
                }
            }
            dic.insert(tmp);
        }
        
        while(cin>>tmp){
            if(tmp==as)continue;
            if(tmp==at)break;
            fun(tmp);
            
        }
        
        ans.clear();
        map<string,int>::iterator it;
        for(it=mp.begin();it!=mp.end();it++){
            ans.insert(make_pair(-it->second,it->first));
        }
        
        int cnt = 10;
        set<pair<int,string> >::iterator it2;
        for(it2=ans.begin();it2!=ans.end();it2++){
            cnt--;
            cout<< (*it2).second<<endl;
            if(!cnt)break;
        }
        cout<<endl;
    }
    return 0;
}

09 The Magic Tower

模拟。


总的来说,题目都是入门级的,只有07有点难。

金融波动预测:GARCH模型实战解析与ARIMA对比 本文深入解析GARCH模型在金融波动预测中的实战应用,并与传统ARIMA模型进行对比。通过沪深300指数日收益率数据的案例分析,展示GARCH模型如何有效捕捉波动聚集效应,提升极端波动预测准确率。文章包含Python代码实现、参数解读及模型选择指南,为量化交易者提供实用的波动率建模解决方案。 阅读详情

相关推荐

基于图神经网络的社交网络虚假账号检测系统 (Graph-based Fake Account Detection System, GFADS)

FOLLOWSRETWEETSSHAREDCOMMENTSLIKESMENTIONSUseruser_idusernamejoin_datebioavatar_urllocationverifiedis_fakeLOAD CSV这是决定模型性能的关键环节,需结合和。XXedge_indexy新账号缺乏历史数据和丰富关系。全网图可能包含数亿节点和数十亿边,难以直接训练。社交网络是动态变化的,虚假账号策略也在不断进化。获取大规模、高质量的真实/虚假账号标注数据非常困难。

Deng945201314的博客 1480

HDU 5095 (多项式模拟 )

Linearization of the kernel functions in SVM Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2881    Accepted Submission(s): 780 Probl

Kunaly 873

工程师必看:如何用定时截尾试验快速验证产品MTBF(附真实案例解析)

本文为硬件工程师详细解析了如何运用定时截尾试验快速验证产品MTBF(平均无故障工作时间)。通过七步实战法,结合工业物联网网关的真实案例,阐述了从参数设定、试验执行到结果判读的完整流程,并提供了MATLAB脚本实现自动化计算与可视化,帮助工程师在有限时间内科学评估产品可靠性。

weixin_29243063的博客 493

2018年第九届蓝桥杯C/C++A组省赛 题面&部分题解

首先,原题: 链接: https://pan.baidu.com/s/1UzRN6Mf2Dwp0263F-MMESg 密码: 2ryh 第一题 标题:分数 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + .... 每项是前一项的一半,如果一共有20项, 求这个和是多少,结果用分数表示出来。 类似: 3/2 当然,这只是加了前2项而已。分子分母要求互质。 注意: 需要...

krypton12138的博客 1万+

科研党必备:Zotero+Deepseek 打造AI文献阅读助手(附详细插件配置指南)

本文详细介绍了如何利用Zotero和Deepseek打造AI文献阅读助手,提升科研效率。从Zotero基础安装到中文文献处理插件茉莉花的配置,再到Deepseek API的集成与模型选择策略,全面覆盖了AI辅助阅读的关键环节。特别适合需要高效管理海量文献的科研工作者,显著提升文献筛选和分析速度。

backprop5master的博客 422

天线学习笔记——HFSS简单阵列天线

在HFSS15.0版本中使用 Radiation --> Antenna Array Setup 设置天线阵列的参数时的设计列表如下: 值得注意的是,在该版本中所定义的是:第一个阵元的位置坐标(First Cell Position)、阵元之间的间距(Directions)和阵元的数量(Number of Cells) 这些参数。 在ANSYS中的HFSS仿真中定义天线阵列如下: 与老版本不同的是:中心点坐标(Center Position)和布局设置(Layout Setting)。在布局设置中

Ethan的博客 1万+

简单题目练习一,题解(C++版)

题目链接 https://vjudge.net/contest/213410#overview 题解 https://github.com/somliy/code/tree/master 坑 不存在的 题解 hdu-2011 多项式求和 题意很明确,公式已经给出了 注意: - 正负交替,这里使用flag *= -1;的方法 - 在进行运算的时候...

无知而狂妄 1440

Windows MCP 安装教程:让 AI 代理与 Windows 系统无缝交互

通过以上步骤,你已经成功安装和配置了 Windows MCP 服务。现在你的 Cursor 编辑器可以通过 MCP 协议与 Windows 系统进行深度交互,AI 代理能够:启动和控制应用程序执行系统命令自动化 UI 操作获取系统状态信息这为 AI 辅助开发和工作流程自动化提供了强大的基础。如果你在使用过程中遇到任何问题,欢迎在评论区讨论或查看项目的官方文档。

chenchihwen的专栏 3349

2015 ACM多校训练第一场

欢迎点此观看>_<题外话这个暑假以前就决定要把这次多校的所有题全补了,中间断断续续,总算把第一场的题补全了,鄙视一下颓废的自己。。。hdu 5288(1001) OO’s SequenceSolution水题,定义两个数组L[i],R[i]L[i], R[i]示第i个数左侧和右侧最接近它且值是a[i]因子的数字的位置,统计贡献即可。由于a[i]范围很小,因子数很小,暴力统计更新l,r即可。Codeh

mlzmlz95的专栏 1602

海思Hi3516CV610--SPI NAND Flash移植实战:从手册到驱动的完整适配

本文详细介绍了海思Hi3516CV610芯片上SPI NAND Flash的移植实战,包括从手册解读到驱动适配的完整流程。以GD5F2GM7UEYIGR Flash为例,重点讲解了关键参数确认、模式选择、时序配置以及U-Boot和Linux内核驱动的具体实现步骤,帮助开发者快速完成Flash移植工作。

weixin_29158413的博客 446

XSS漏洞之PDF生成:从XSS到服务端任意文件读取

XSS是最为常见的Web漏洞之一,多年来连续入选OWASP TOP10,相信大家都耳熟能详。 它是一种代码注入类的攻击,是一种客户端侧的攻击,攻击者通过在Web应用中注入恶意JavaScript代码,通过点击URL,最终在受害者浏览器端执行的一种漏洞。主要有反射型XSS、存储型XSS、基于DOM的XSS三类。XSS一些比较常规的危害大概有:重定向浏览器、窃取Cookie、浏览器劫持等。本文章侧重于发现XSS后的进一步利用。 主要介绍在某次实际测试过程中,发现XSS漏洞之后,如何进一步的利用,最终通过XSS达

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 3777

2015 ACM多校训练第二场

在下面网址看效果更佳>_<http://mlz000.github.io/2015/08/17/2015-ACM%E5%A4%9A%E6%A0%A1%E8%AE%AD%E7%BB%83%E7%AC%AC%E4%BA%8C%E5%9C%BA/题外话颓废了一万年终于把第二场的题补完了,除了丧病的第一题。。hdu 5301(1002) BuildingsSolution水题,仔细讨论各种情况即可Codeh

mlzmlz95的专栏 1039

Zookeeper+Hadoop+Spark+Flink+Kafka+Hbase+Hive 完全分布式高可用集群搭建(保姆级超详细含图文) 附安装包网盘下载

Hadoop+Spark+Flink+Zookeeper+Kafka+Hbase+Hive完全分布式高可用集群搭建 Hadoop高可用集群搭建 Spark高可用集群搭建 Flink高可用集群搭建 Zookeeper高可用集群搭建 Kafka高可用集群搭建 Hbase高可用集群搭建 Hive高可用集群搭建 mysql搭建 jdk部署 大数据集群环境搭建

Mr.L-OAM的博客 2万+

Hdu2015 偶数求和

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2015 偶数求和 Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 125922Accepted Submission(s): 520...

weixin_30389003的博客 78

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

蓝牙模块HM-10手册

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

HDU 5317 RGCDQ(素数个数 多校2015啊)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5317 Problem Description Mr. Hdu is interested in Greatest Common Divisor (GCD). He wants to find more and more interesting things a...

aoe41606的博客 144

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

hdu2015

http://acm.hdu.edu.cn/showproblem.php?pid=2015 1 #include 2 #include 3 #include 4 #includestring.h> 5 #include 6 using namespace std; 7 8 int main() 9 { 10 //freopen("in.txt"

xuesen1995的专栏 350

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

2015多校第6场 HDU 5355 Cake 贪心,暴力DFS

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5355 题意:给你n个尺寸大小分别为1,2,3,…,n的蛋糕,要求你分成m份,要求每份中所有蛋糕的大小之和均相同,如果有解,输出“YES”,并给出每份的蛋糕数及其尺寸大小,否则输出“NO” 例如n=5,m=3,即大小尺寸分别为1,2,3,4,5的5个蛋糕,要求分成三份,那么解可以是第一份一...

aishangg437965的博客 170

hdu 2015 偶数求和

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2015 题目大意:一个长度为n的偶数序列,以m一组求平均数,剩余的且不足m的求平均数,输出平均数的序列。 1 #include<stdio.h> 2 int main() 3 { 4 int n,m,i,t,a,s; 5 while(scanf("%...

weixin_30666753的博客 119

[恢]hdu 2015

2011-12-14 05:49:09 地址:http://acm.hdu.edu.cn/showproblem.php?pid=2015 题意:中文,忒麻烦了。 代码: # include <stdio.h>int main (){ int n, m, flag ; int i, sum, cnt ; while (~scanf ("%d%d", &am...

weixin_30652491的博客 73

杭电acm2015

http://acm.hdu.edu.cn/showproblem.php?pid=2015 先把不属于多出来的那些数的求和并输出,然后再去处理多出来的那几个 View Code 1 #include<stdio.h> 2 int main() 3 { 4 int n,m,k,i,sum,j; 5 int a[101]; 6 ...

anccx84886的专栏 162

hdu 5296,15年多校1-7

hdu 5296,15年多校1-7 题意:   给定一个无向带权图G(n, m),一个人要沿着最短路从1走到n,现在可以任意从图上删边。求,最少删多少边可以使之无法到达终点 和 最多删多少边其仍可以到达终点 想法:   比赛时的想法:直接跑最小费用最大流...

banggui5839的博客 273

2015沈阳ICPC题解

D:Pagodas(塔)      http://acm.hdu.edu.cn/showproblem.php?pid=5512 //15ms(1000ms) hdu不能调用__gcd()函数? /*theme:给定n,表示一共要建n个塔(编号从1到n),给出a,b代表最开始有了塔a和塔b 两个人轮流建,每次只能建塔i,i=j+k或i=j-k,j,k为已经建成的塔,A先开始,每次选择最优 无法...

wangqianqianya的博客 666

2015年沈阳区域赛-重现赛hdu 5512 gcd 博弈

Pagodas Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 1333    Accepted Submission(s): 935 Problem Description n pagodas were standi

转角的守望 488

HDU 5124 hihocoder 1249 Xiongnu's Land (2015北京区域赛A)

扫描线

大咸鱼。。。 727

2015 多校联赛 ——HDU5389(dp)

Sample Input 4 3 9 1 1 2 6 3 9 1 2 3 3 5 2 3 1 1 1 1 1 9 9 9 1 2 3 4 5 6 7 8 9 Sample Output 1 0 10 60 题意: 已知有两个门,要求将人分为两组,两组的“和”分别等于两个门的数字,当然也可以全部进入一个门 ...

diaocuiguo2493的博客 108
上一篇: Codeforces Round #337 (Div. 2) ABCDE
下一篇: Codeforces Good Bye 2015 ABCDE
squee_spoon
博客等级 码龄14年 61粉丝 455原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值