USACO2.1【bfs,排序,贪心,dfs,位运算】

前言

开始刷USACO的题了。


正题

刷前必备技能:OI常识,bfs,dfs,位运算,基础贪心,快速排序。


T1:城堡 TheCastleThe CastleTheCastle

评测记录:
https://www.luogu.org/recordnew/lists?uid=52918&pid=P1457
之前写过,详见:
https://blog.csdn.net/Mr_wuyongcong/article/details/78937287


T2:顺序的分数 OrderedFractionsOrdered FractionsOrderedFractions

评测记录:https://www.luogu.org/problemnew/show/P1458


题目大意

求最简分数
ab(a,b&lt;=n,a,b∈N)\frac{a}{b}(a,b&lt;=n,a,b\in N)ba(a,b<=na,bN)
从小到大输出。


解题思路

暴力枚举ab,gcd判断最间,然后排序。


code

// luogu-judger-enable-o2
#include<cstdio>
#include<algorithm>
using namespace std;
int n,tot;
struct node{int a,b;double w;
}a[10001];
bool cmp(node x,node y)
{return x.w<y.w;
}
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)for(int j=i+1;j<=n;j++)if(__gcd(i,j)==1) {a[++tot]=(node){i,j,(double)i/j};}//暴力枚举sort(a+1,a+1+tot,cmp);//排序printf("0/1\n");for(int i=1;i<=tot;i++)printf("%d/%d\n",a[i].a,a[i].b);printf("1/1");
}

T3:三值的排序 SortingaThree−ValuedSequenceSorting a Three-Valued SequenceSortingaThreeValuedSequence

评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P1459


题目大意

1,2,3构成的序列,要求至少多少次交换可以将其变为升序序列。


解题思路

我们考虑所以放错位置的数。
如果3放在了1,2的位置上,那么就一定是需要一次交换的。如果1放在了2的位置或2放在了1的位置,那么可以选择1放回去或2放回去,当然我们可以将错的2和错的1抵消所以答案就是
wrong3+max{wrong1,wrong2}wrong_3+max\{wrong_1,wrong_2\}wrong3+max{wrong1,wrong2}


code

#include<cstdio>
#include<algorithm>
using namespace std;
int n,a[1001],s,num[4],fail[4];
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]),num[a[i]]++;for(int i=1;i<=num[1]+num[2];i++){if(a[i]==3) fail[3]++;//3放错位置if(i<=num[1]&&a[i]==2) fail[2]++;//2放错位置if(i>num[1]&&a[i]==1) fail[1]++;//1放错位置}printf("%d",fail[3]+max(fail[1],fail[2]));
}

T4:健康的荷斯坦奶牛 HealthyHolsteinsHealthy HolsteinsHealthyHolsteins

评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P1460


题目大意

牛对于v种维生素有不同的需求,每包饲料含有不等量不同的维生素。求需要的最少饲料包数


解题思路

dfs暴搜


code

#include<cstdio>
using namespace std;
int v,n,mins,ans[30],h[30][30],use[30],ne[30],now[30];
bool check()
{for(int i=1;i<=v;i++)if(now[i]<ne[i]) return false;return true;
}
void dfs(int dep,int c)
{if(c>=mins||dep>n) return;if(check()){for(int i=1;i<=n;i++)ans[i]=use[i];mins=c;}use[dep+1]=1;for(int i=1;i<=v;i++)now[i]+=h[dep+1][i];dfs(dep+1,c+1);use[dep+1]=0;for(int i=1;i<=v;i++)now[i]-=h[dep+1][i];dfs(dep+1,c);
}
int main()
{scanf("%d",&v);for(int i=1;i<=v;i++)scanf("%d",&ne[i]);scanf("%d",&n);for(int i=1;i<=n;i++)for(int j=1;j<=v;j++)scanf("%d",&h[i][j]);mins=2147483647;dfs(0,0);printf("%d ",mins);for(int i=1;i<=n;i++)if(ans[i]) printf("%d ",i);
}

T5:海明码 HammingCodesHamming CodesHammingCodes

评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P1461


题目大意

求n个最小的非负整数,要求每个数两两之间HammingHammingHamming距离(二进制位数不相同的个数)。


解题思路

之接暴力过去枚举数,然后a⨁ba\bigoplus bab后统计1的个数就可以计算距离来判断。


code

#include<cstdio>
#include<algorithm>
using namespace std;
int n,b,d,now,last,tot,ans[100];
int main()
{scanf("%d%d%d",&n,&b,&d);n--;tot=1;printf("0 ");ans[1]=0;while(n){now++;bool flag=true;for(int i=0;i<=tot;i++){if(__builtin_popcount(now^ans[i])<d){flag=false;break;}}//是否满足要求if (flag){printf("%d ",now);ans[++tot]=now;if(tot%10==0) printf("\n");n--;}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用公有云接入——腾讯

一、ES术语表 本文档涉及的一些常用术语如下&#xff1a; 术语全称中文说明InstanceInstance实例指代一台云服务器。RegionRegion地域表示资源所在的地域&#xff0c;每个地域包含一个或多个可用区。ZoneZone可用区指腾讯云在同一 地域 内电力和网络互相独立的物理数据中心。…

csdn颜色字体的改变

一直想改变一下csdn界面字体的颜色&#xff0c;奈何csdn上没有像Word那样直接改变字体颜色的版面&#xff0c;找半天没找到&#xff0c;后来才知道必须输入代码才能改变字体颜色&#xff0c;这个就很高级了啊 <font face"微软雅黑" color#FF8C00 size2> **一…

ASP.NET Core 2.0 使用支付宝PC网站支付

前言 最近在使用ASP.NET Core来进行开发&#xff0c;刚好有个接入支付宝支付的需求&#xff0c;百度了一下没找到相关的资料&#xff0c;看了官方的SDK以及Demo都还是.NET Framework的&#xff0c;所以就先根据官方SDK的源码&#xff0c;用.NET Standard 2.0 实现了支付宝服务端…

USACO2.2【统计,dp,模拟,位运算】

正题 T1:序言页码 PrefaceNumberingPreface NumberingPrefaceNumbering 评测记录:https://www.luogu.org/recordnew/lists?uid52918&pidP1465 题目大意 求1∼n1\sim n1∼n的罗马数字每个字母出现的次数。 解题思路 先写一个表&#xff0c;表示这个位上出现哪个数字表示…

mysql实现查询分组查询最后一次的记录

大家好&#xff0c;我是雄雄。 前言 又好久没有写博客了&#xff0c;为什么呢&#xff1f;因为最近没怎么写代码…说起来也惭愧。 今天在项目上遇到了个需求&#xff0c;是这样的&#xff1a;我们数据库中有一表检测记录表&#xff0c;该表中存储的是所有居民每次的检测记录&…

常用公有云接入——华为

一、介绍 1、什么是弹性云服务器? 弹性云服务器是由CPU、内存、镜像、云硬盘组成的一种可随时获取、弹性可扩展的计算服务器&#xff0c;同时它结合虚拟私有云、虚拟防火墙、数据多副本保存等能力&#xff0c;为您打造一个高效、可靠、安全的计算环境&#xff0c;确保您的服…

jenkins~集群分发功能和职责处理

jenkins的多节点集群 在进行自动化部署时&#xff0c;你可以按着它们的项目类型去进行分别部署&#xff0c;这样即可以达到负载均衡&#xff0c;又可以达到一种职责的明确&#xff0c;比如像java的项目你可以使用linux服务来进行部署&#xff08;拉代码&#xff0c;还原&#x…

nginx中配置https的步骤

大家好&#xff0c;我是雄雄。 想必大家都有过配置https的需求吧&#xff0c;今天我就来整理一下&#xff0c;如何在nginx里面配置https 这里先忽略https申请&#xff0c;一般在你申请域名的那里直接弄就行&#xff0c;下面是nginx中的配置代码&#xff1a; server {listen …

nssl1185-试卷【状态压缩】

正题 题目大意 有n张试卷m道题&#xff0c;给出每张试卷每道题的答案(A或B)&#xff0c;选择若干道题&#xff0c;要求至少有k对试卷这些题的选择不一样&#xff08;只要有一题不一样就行&#xff09; 解题思路 用二进制码表示试卷&#xff0c;用1表示A,0表示B。 然后用二进制…

爬取网页图片

前言 这几天又看了下python的视频&#xff0c;突然又对python感兴趣起来。以前只是学了下python的基础&#xff0c;感觉和其他语言没什么大的区别&#xff0c;再加上编程游戏的插件pygame一直没装上&#xff0c;遂放弃了。 最近心血来潮突然又想用python来搞游戏开发&#xff…

sql中索引不会被用到的几种情况

转载自 sql中索引不会被用到的几种情况 1、查询谓词没有使用索引的主要边界,换句话说就是select *&#xff0c;可能会导致不走索引。 比如&#xff0c;你查询的是SELECT * FROM T WHERE YXXX;假如你的T表上有一个包含Y值的组合索引&#xff0c;但是优化器会认为需要一行行的…

asp.net core合并压缩资源文件引发的学习之旅

0. 在asp.net core中使用BuildBundlerMinifier合并压缩资源文件 在asp.net mvc中可以使用Bundle来压缩合并css,js 不知道的见&#xff1a;http://www.cnblogs.com/morang/p/7207176.html 在asp.net core中则可以使用BuildBundlerMinifier来进行css&#xff0c;js的压缩合并 新建…

新服务器中如何安装jdk(一行命令)

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 今天我们看看如何在服务器中安装jdk&#xff0c;这里指的服务器是linux。 服务器版本&#xff1a;centos 7.8 jdk版本&#xff1a;jdk1.8 下面我们来介绍下命令是什么&#xff1a; yum -…

nssl1186-字串数量【前缀和】

正题 题目大意 长度为n的字符串&#xff0c;有q个询问&#xff0c;求[l∼r][l\sim r][l∼r]这个区间的最小子串出现次数。 解题思路 这个就是一道坑题 我们可以发现如果有一个长度为2的子串&#xff0c;那么这个子串前面那一部分一定是更小的。 所以最小子串一定是一个字母&a…

关于腾讯云域名解析

前言 在浏览qq空间的时候看到了腾讯云的广告&#xff0c;只要一块钱即可注册一个.club域名。想起前段时间看的博客&#xff0c;自己早晚要入手网站搭方面的内容&#xff0c;按捺不住心悸&#xff0c;遂买了个域名&#xff0c;起了个叫woyidiankuan的域名&#xff0c;本来想写k…

linux服务器中如何安装mysql数据库(一次性完成,包含远程连接)

大家好。我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 今天给大家介绍一下&#xff0c;如何在新服务器中安装mysql数据库&#xff0c;总是捣鼓服务器&#xff0c;每次都去网上查&#xff0c;次次都不一样&#xff0c;浪费好多时间&#xff0c;这次自己记录…

Postman高级应用——流程控制、调试、公共函数、外部数据文件

postman客户端下载地址&#xff1a;https://www.getpostman.com/apps 流程控制 流程控制简言之就是设置接口的执行顺序&#xff0c;流程控制只有在collection runner或Newman里才生效 如果需要实现多个接口的一次循环&#xff0c;只需在每个接口的Tests中编写脚本 postman.setN…

JavaFX鼠标拖拽移动图片

一、鼠标拖拽移动图片 package cn.util;import java.io.File; import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.geometry.Point2D; import javafx.geometry.Rectangle2D; impor…

nssl1187-排列【dp,随机卡常,树状数组】

正题 题目大意 一个由1∼n1\sim n1∼n组成的序列 求长度为k的上升序列的个数。 数据保证随机 解题思路 用fi,jf_{i,j}fi,j​表示长度为i&#xff0c;以j结尾的上升序列个数。 然后 fi,j∑fi−1,k(aj>ak,j>k)f_{i,j}\sum f_{i-1,k}(a_j>a_k,j>k)fi,j​∑fi−1,k​…

ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: N O)

今天早上起来原想着学习python的&#xff0c;想看看mysql&#xff0c;于是陷进去了。 明明没碰啊&#xff0c;怎么突然就启动不了了呢 输入mysql net start mysql 一直显示正在启动&#xff0c;最后蹦出个服务无法启动 网上查了下输入 mysqld --initialize 早上的时候输入的…