【2018.4.14】模拟赛之二-ssl2392 蚂蚁【图论】

正题


大意

有n只蚂蚁,他们会往固定方向行走,行走速度相同,如果两只或多只相撞就会消除,求所有碰撞后剩余的蚂蚁数量


解题思路

将两只会相撞的蚂蚁碰撞的信息记录下来(包括需要多久后碰撞),然后将时间从小到大排序。

接下来要解决多只碰撞的问题,用两个数组表示以消除和已经有碰撞,然后如果发现这次的时间已经和上次的不一样了,就把已经碰撞的都标记为以消除。


代码

代码极丑无比
以下内容可能会引起你的不舒适,请选择性观看

include<cstdio>
#include<algorithm>
#include<iostream>
using namespace std;
struct xjq/*啦啦啦啦啦*/{int fi,sn;double w;
}dis[2501];
int tot,n,ans;
double x[51],y[51],s;
char c[51];
bool tmp[51],e[51];
double abs(double x)
{if (x<0) return -x;else return x;
}
bool cmp(xjq x,xjq y)//排序用
{return x.w<y.w;
}
int main()
{scanf("%d",&n);scanf("\n");for (int i=1;i<=n;i++){cin>>c[i];}for (int i=1;i<=n;i++){scanf("%lf%lf",&x[i],&y[i]);}for (int i=1;i<=n;i++){for (int j=1;j<=n;j++){if (i==j) continue;if (x[i]==x[j] && y[i]==y[j]) //好像不会有这种情况,可以无视{dis[++tot].fi=i;dis[tot].sn=j;dis[tot].w=0;}else if (y[i]==y[j] && ((x[i]<x[j] && c[i]=='E' && c[j]=='W') || (x[i]>x[j] && c[i]=='W' && c[j]=='E')))//东西相撞{dis[++tot].fi=i;dis[tot].sn=j;dis[tot].w=abs(x[i]-x[j])/2;}else if (x[i]==x[j] &&((y[i]>y[j] && c[i]=='S' && c[j]=='N') || (y[i]<y[j] && c[i]=='N' && c[j]=='S')))//南北相撞{dis[++tot].fi=i;dis[tot].sn=j;dis[tot].w=abs(y[i]-y[j])/2;}else if (abs(x[i]-x[j])==abs(y[i]-y[j]))//直角相撞{if ((x[i]<x[j] && y[i]<y[j] && ((c[i]=='E' && c[j]=='S') || (c[i]=='N' && c[j]=='W')))||(x[i]>x[j] && y[i]>y[j] && ((c[i]=='W' && c[j]=='N') || (c[i]=='S' && c[j]=='E')))||(x[i]<x[j] && y[i]>y[j] && ((c[i]=='E' && c[j]=='N') || (c[i]=='S' && c[j]=='W')))||(x[i]>x[j] && y[i]<y[j] && ((c[i]=='W' && c[j]=='S') || (c[i]=='N' && c[j]=='E')))){dis[++tot].fi=i;dis[tot].sn=j;dis[tot].w=abs(y[i]-y[j]);}}}}ans=n;sort(dis+1,dis+tot+1,cmp);//排序for (int i=1;i<=tot;i++){if (dis[i].w>s){s=dis[i].w;for (int j=1;j<=n;j++)e[j]=tmp[j];//赋值}if (!e[dis[i].fi] && !e[dis[i].sn]){if (!tmp[dis[i].fi]) ans--;if (!tmp[dis[i].sn]) ans--;tmp[dis[i].fi]=true;tmp[dis[i].sn]=true;//printf("%d %d %lf\n",dis[i].fi,dis[i].sn,dis[i].w);}}printf("%d",ans);
}

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

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

相关文章

使用 InSpec 实现符合性即代码

法规符合性是每个企业必须面对的一个现实问题。同时&#xff0c;随着改变业界格局的新技术以及客户对数字服务的期望的出现&#xff0c;竞争压力也随之增加。各行业能否在快速交付新产品和服务的同时&#xff0c;仍然履行法规符合性义务&#xff1f; 回答是肯定的。解决方案就是…

计算机专业毕业后能做什么工作?

众所周知&#xff0c;目前比较火的专业之一莫过于计算机专业了。在这个互联网时代&#xff0c;越来越多的人选择去学习计算机专业&#xff0c;可是你知道计算机专业毕业后都有哪些岗位可选择吗&#xff1f;各个岗位的工作任务主要是什么&#xff1f;以下是对于计算机专业中各个…

【2018.4.14】模拟赛之三-ssl2393 单元格

正题 大意 在一个n*m的矩阵里找三个矩阵&#xff0c;要求他们三都不在同一行和同一列。然后要求价值不在minT和maxT之间&#xff0c;他们的价值就等于dis[A,B]dis[B,C]dis[A,C]dis[A,B]dis[B,C]dis[A,C]。求方案数。 解题思路 首先如果需要去掉重复的所以我们可以把A锁定在B和…

什么是 binlog

转载自 什么是 binlog 引言 为什么写这篇文章? 大家当年在学MySQL的时候&#xff0c;为了能够迅速就业&#xff0c;一般是学习一下MySQL的基本语法&#xff0c;差不多就出山找工作了。水平稍微好一点的童鞋呢还会懂一点存储过程的编写&#xff0c;又或者是懂一点索引的创建…

[信息安全] 4.一次性密码 amp;amp;amp;amp; 身份认证三要素

在信息安全领域&#xff0c;一般把Cryptography称为密码&#xff0c;而把Password称为口令。日常用户的认知中&#xff0c;以及我们开发人员沟通过程中&#xff0c;绝大多数被称作密码的东西其实都是Password&#xff08;口令&#xff09;&#xff0c;而不是真正意义上的密码。…

干货!sqlserver数据库所有知识点总结整理,含代码(挺全的)

01T-SQL案例整理已知有一个表&#xff1a;该表的字段有&#xff1a;id,name,date,gradeid,email&#xff0c;表名为table_name,按要求实现下面内容。1.插入一条记录&#xff1a;insert into table_name values (1,刘世豪,2017-10-21,1,666qq.com)2.将学号是1的学生姓名修改成张…

深入源码分析Java线程池的实现原理

转载自 深入源码分析Java线程池的实现原理 程序的运行&#xff0c;其本质上&#xff0c;是对系统资源&#xff08;CPU、内存、磁盘、网络等等&#xff09;的使用。如何高效的使用这些资源是我们编程优化演进的一个方向。今天说的线程池就是一种对CPU利用的优化手段。 网上有…

【2018.4.14】模拟赛之四-ssl2394 剪草【dp】

正题 大意 有n株草&#xff0c;没个时间单位开始时会增长不同的长度。每个时间单位可以将一株草剪成高度为0&#xff0c;求多少时间单位后能够将草的总高度减低为h以下&#xff0c;或用远不能。 解题思路 首先需要一段玄学推理&#xff1a; 可以等草长高些在剪。 如果有解每…

“桌面日历”记录的事件居然是看某某视频……

某年某月某下午&#xff0c;正在激情澎湃的在讲台上讲课&#xff0c;忽发现医学生缓缓的将右手举起来&#xff0c;见状&#xff0c;不用想&#xff0c;他一定有问题&#xff0c;嗯……要问我。于是&#xff0c;紧走几步下去&#xff0c;问他怎么了&#xff0c;他说他的某某功能…

开源个.NetCore写的 - 并发请求工具PressureTool

本篇和大家分享的是一个 并发请求工具&#xff0c;并发往往代表的就是压力&#xff0c;对于一些订单量比较多的公司这种情况很普遍&#xff0c;也因此出现了很多应对并发的解决方案如&#xff1a;分布式&#xff0c;队列&#xff0c;数据库锁等&#xff1b; 对于没有遇到过或者…

浅析DNS域名解析过程

转载自 浅析DNS域名解析过程 对于每一个HTTP请求发起过程中&#xff0c;都有很重要的一个步骤——DNS解析&#xff0c;本篇文章将跟着DNS解析过程来分析域名是如何解析的。 一、DNS域名解析步骤 下图是DNS域名解析的一个示例图&#xff0c;它涵盖了基本解析步骤和原理。 下…

ssl初一组周六模拟赛【2018.4.14】

前言 先说一下成绩&#xff1a; 姓名成绩xjq190wyc170hzb160lrz140hjq80lw70xxy60zyc40 正题 题目1&#xff1a;ssl2391 数列 被数据坑了 链接&#xff1a; https://blog.csdn.net/mr_wuyongcong/article/details/79939709 题目2&#xff1a;ssl2392 蚂蚁【图论】 代码极…

最好的方法,是为你们量身定制!

昨天还和佟老师在讨论3班的学习情况&#xff0c;整体来说&#xff0c;学习氛围还是比较好的。由于近几天各种事纠结在一块儿&#xff0c;本来想给三班的学生制作一个提升计划&#xff0c;一直都腾不出来手。今天&#xff0c;终于抽了一点点时间&#xff0c;在原来互帮互助计划的…

Entity Framework Core 命名约定

注意&#xff1a;我使用的是 Entity Framework Core 2.0 (2.0.0-preview2-final)。正式版发布时&#xff0c;功能可能存在变动。Entity Framework 迁移允许从模型生成数据库&#xff0c;这意味着必须从类名和属性名生成数据库对象的名称。对于大多数人来说使用默认名称是没有问…

ZOJ1654-Place the Robots【最大匹配,图论】

正题 大意 一个n*m个地方&#xff0c;有墙&#xff0c;草地和空地。在空地可以放机器人&#xff0c;机器人会将看到的其他机器人 [河蟹] 掉。他不能隔墙看。求最多能放多少个机器人。 解题思路 这里用一种奇特的构图方法&#xff0c; &#xff08;盗一下ppt里的图&#xff0…

彻底理解JVM常考题之分级引用模型

转载自 彻底理解JVM常考题之分级引用模型 本文通过探析Java中的引用模型&#xff0c;分析比较强引用、软引用、弱引用、虚引用的概念及使用场景&#xff0c;知其然且知其所以然&#xff0c;希望给大家在实际开发实践、学习开源项目提供参考。 Java的引用 对于Java中的垃圾…