7.25-2014新生暑假个人排位赛06

算法竞赛题解精选
本文精选了几道算法竞赛题目并提供了详细的解题思路与代码实现,包括最小生成树、状态压缩DP、DFS搜索等核心算法。



A题Kruskal+并查集。注意要先把已经修好的路遍历一遍形成最小生成树。

还有。我把修好的路看成1,未修好的路看成0.以后要认真读题啊警示自己~~~


-----------------------------------我是可爱的分割线--------------------------------------------


B、高兴

题意:每两个东西相邻有一个高兴值。找出总高兴值最大的排列。

输入样例

2
0 1
2 0
3
0 -1 7
3 0 3
3 3 0

输出样例

2 
10


解法:

1.把链状想象成首尾断开的环状。就可以转换为状态压缩dp的旅行商问题。

2.旅行商问题:从顶点0出发,每个顶点走一遍,最后回到顶点。求权值最小值。

而这道题,只需转换为不加上最后回到起点的那条边,并且改为求权值的最大值即可。

代码如下:

int rec(int S,int v)
{
    if(dp[S][v]>-INF)
        return dp[S][v];
    if(S==(1<<n)-1)
        return dp[S][v]=0;
    int res=-INF;
    for(int u=0;u<n;u++)
        if(!(S>>u&1))
        {
            int temp=rec(S|1<<u,u)+toy[v][u];
            if(temp>res)
            {
                res=temp;
            }
        }
    return dp[S][v]=res;
}

3.把每个物品都放在起点试一试,找出最大的权值。输出即可。



C、排序

题意:给n个数,从小到大输出。

输入样例

3
4 2 1

输出样例

1 2 4


解法:





D、爱好和平

题意:每两个顶点之间有且仅有一条边相连。现要求破坏其中一个顶点,得到两颗子树(或一条链),得到两棵中较大的那棵拥有的顶点数,求顶点数最小值。

输入样例

5 4
1 2
1 3
1 4
4 5

输出样例

1


解法:

1、如果这是一个圈,直接输出1;

2、如果是一棵树,用dfs(深度优先搜索)遍历。每个顶点的值就是它所有儿子节点的值相加。

     具体实现:把max置为0,dfs遍历一遍它的孩子,每dfs一个孩子就把孩子的节点值加到max上,走完所有节点后,把当前节点的数组的值变为max(dp[n]=max)。

3、dfs结束后,把每个顶点都试一遍。最大子树的值maxson=max(maxson,dp[sole[j].v]);

4、注意!3中不要搜索自己的父亲。



E.萌学妹的手机(黑完学姐黑学妹。。。)

题意:在一副都是六边形的图片中。给出六边形边长找到起点和终点需要穿过的最少的边数。

输入样例

2
2.0
0 0
6 -1
2.0
0 0
9 -1

输出样例

2
3


解法:

1、先转换为斜60°的坐标。

因为实在找不到六边形就只能用小乌龟假装六边形了。


坐标转换:Sx=x-(y)/sqrt(3.0);

         Sy=((y)*2.0)/sqrt(3.0);

2、把两个点周围搜一遍,找到最近的六边形中心。。。。。

3、



"Mstar Bin Tool"是一款专门针对Mstar系列芯片开发的固件处理软件,主要用于智能电视及相关电子设备的系统维护与深度定制。该工具包特别标注了"LETV USB SCRIPT"模块,表明其对乐视品牌设备具有兼容性,能够通过USB通信协议执行固件读写操作。作为一款专业的固件编辑器,它允许技术人员对Mstar芯片的底层二进制文件进行解析、修改与重构,从而实现系统功能的调整、性能优化或故障修复。 工具包中的核心组件包括固件编译环境、设备通信脚本、操作界面及技术文档等。其中"letv_usb_script"是一套针对乐视设备的自动化操作程序,可指导用户完成固件烧录全过程。而"mstar_bin"模块则专门处理芯片的二进制数据文件,支持固件版本的升级、降级或个性化定制。工具采用7-Zip压缩格式封装,用户需先使用解压软件提取文件内容。 操作前需确认目标设备采用Mstar芯片架构并具备完好的USB接口。建议预先备份设备原始固件作为恢复保障。通过编辑器修改固件参数时,可调整系统配置、增删功能模块或修复已知缺陷。执行刷机操作时需严格遵循脚本指示的步骤顺序,保持设备供电稳定,避免中断导致硬件损坏。该工具适用于具备嵌入式系统知识的开发人员或高级用户,在进行设备定制化开发、系统调试或维护修复时使用。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
要将备份语句设置为Windows定时任务脚本,可以按照以下步骤进行操作: 1. 打开记事本或其他文本编辑器,创建一个批处理脚本文件(后缀名为 .bat),例如 backup_script.bat。 2. 输入以下内容到批处理脚本文件中: ```batch @echo off mysqlpump -h10.11.7.25 -uroot -pzzjsk.002 --default-character-set=utf8 --all-databases > "J:\数据库备份\备份文件名.sql" ``` 3. 保存批处理脚本文件,并将文件名设置为 backup_script.bat。 4. 打开"任务计划程序",可以通过以下方式打开: - 使用快捷键 Win + R 打开运行对话框,输入 `taskschd.msc`,然后点击确定。 - 或者,在开始菜单中搜索"任务计划程序"并打开。 5. 在任务计划程序中,点击"创建基本任务"或"创建任务"。 6. 按照向导的指示完成以下设置: - 设置任务名称和描述。 - 选择"每小时",然后点击下一步。 - 选择"启动程序",然后点击下一步。 - 在"程序/脚本"字段中,浏览并选择之前创建的批处理脚本文件 backup_script.bat。 - 在"起始于"字段中,输入批处理脚本文件的完整路径,例如 `C:\路径\backup_script.bat`。 - 点击下一步,然后点击完成。 现在,你已经成功创建了一个每小时执行的Windows定时任务脚本,用于执行MySQL数据库备份。每小时,脚本将运行并将备份保存到指定的文件路径中(J:\数据库备份\备份文件名.sql)。请确保目标文件夹已存在并具有写入权限。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值