UVA 10273 Eat or not to Eat?
直接暴力模拟 。以每次还未被删除的cnt[i]为一周期进行暴力模拟
#include <map> #include <set> #include <list> #include <cmath> #include <ctime> #include <deque> #include <stack> #include <queue> #include <cctype> #include <cstdio> #include <string> #include <vector> #include <climits> #include <cstdlib> #include <cstring> #include <iostream> #include <algorithm> #define LL long long #define PI 3.1415926535897932626 using namespace std; int gcd(int a, int b) {return a % b == 0 ? b : gcd(b, a % b);} int lcm(int a, int b) {if (a < b) swap(a,b);int tmp = gcd(a,b); return a / tmp * b;} #define MAXN 1010 int N; int cnt[MAXN]; int src[MAXN][20]; bool killed[MAXN]; int kill(int day) {int ans = 300,num = 0,st;for (int i = 1; i <= N; i++)if (!killed[i]){int val = src[i][day % cnt[i]];if (val == ans) num++;if (val < ans){ans = val;st = i;num = 1;}}if (num == 1) return st;return 0; } int main() {int T;scanf("%d",&T);while (T--){scanf("%d",&N);for (int i = 1; i <= N; i++){scanf("%d",&cnt[i]);for (int j = 1; j < cnt[i]; j++)scanf("%d",&src[i][j]);scanf("%d",&src[i][0]);}memset(killed,false,sizeof(killed));int tot = 0, st = 1, ed,ans = 0;while (true){bool flag = false;int tmp = 1;for (int i = 1; i <= N; i++)if (!killed[i]) tmp = lcm(tmp,cnt[i]);ed = st + tmp - 1;for (int i = st; i <= ed; i++){int k = kill(i);if (k){killed[k] = true;//printf("%d %d\n",k,i);tot ++;ans = i;flag = true;}}st = ed + 1;if (!flag || tot >= N) break;}printf("%d %d\n",N - tot,ans);}return 0; }
转载于:https://www.cnblogs.com/Commence/p/4019966.html
UVA 10273 Eat or not to Eat?相关推荐
- java定义一个eat方法_Java继承概念详细解读
继承与合成基本概念 继承:可以基于已经存在的类构造一个新类.继承已经存在的类就可以复用这些类的方法和域.在此基础上,可以添加新的方法和域,从而扩充了类的功能. 合成:在新类里创建原有的对象称为合成.这 ...
- 提取了下刘汝佳推荐的题号...
今天闲来没事上uva oj提取了下刘汝佳推荐的acm题号,原始数据如下: Volume 0. Getting Started 10055 - Hashmat the Brave Warrior ...
- 【面向对象编程】(4) 类的继承,重构父类中的方法
各位同学好,今天和大家分享一下面向对象编程中,类的三大特征之继承.主要介绍:子类继承父类的基本方法:重写父类的类方法:重构父类的初始化方法:super() 方法.本节主要是单继承,多继承在下一节中介绍 ...
- 深入理解 python 元类
一.什么的元类 # 思考: # Python 中对象是由实例化类得来的,那么类又是怎么得到的呢? # 疑问: # python 中一切皆对象,那么类是否也是对象?如果是,那么它又是那个类实例化而来的呢 ...
- python中的协程(二)
协程 1.协程: 单线程实现并发 在应用程序里控制多个任务的切换+保存状态 优点: 应用程序级别速度要远远高于操作系统的切换 缺点: 多个任务一旦有一个阻塞没有切,整个线程都阻塞在原地,该线程内的其他 ...
- python学习点滴记录-Day10-线程
多线程 协程 io模型 并发编程需要掌握的点: 1 生产者消费者模型2 进程池线程池3 回调函数4 GIL全局解释器锁 线程 理论部分 (摘自egon老师博客) 一.定义: 在传统操作系统中,每个进程 ...
- 数据结构与算法:04 C#面向对象设计 II
04 C#面向对象设计 II 知识结构: 5.属性 例1:属性概念的引入(问题) public class Animal {public int Age;public double Weight;pu ...
- 数据结构与算法:03 C#面向对象设计 I
03 C#面向对象设计 I 知识结构: 1.类与对象 类:用高级程序语言实现的一个ADT描述. 对象:通过类声明的变量. 2.封装 2.1 什么是封装 把类的内部隐藏起来以防止外部看到内部的实现过程. ...
- Java面向对象三大特征 之 多态性
1.理解多态性:可以理解为一个事物的多种形态 2.对象的多态性:父类的引用指向子类的对象(子类的对象赋给父类的引用) 3.多态的使用:虚拟方法的调用 子类中定义了与父类同名同参数的方法(重写),在多态 ...
最新文章
- Win10网页打不开提示DNS_PROBE_POSSIBLE错误解决
- R语言对dataframe(data.table)数据分层随机抽样实战
- 李开复:发明期已过,AI科学家创业需谨慎(附演讲视频)
- 网站能拿到其他网站的cookie_如何设计网站能让网站建设的更有吸引力
- Hadoop2.6.0的Intellij Idea 插件
- 发送结构化网络数据Server端
- 套接字(Windows)
- C语言数组和指针的区别
- docker自动部署脚本
- i7 10510u相当于什么处理器
- 服务器显示阵列卡升级,Systemx服务器在BIOS中刷新阵列卡微码
- freeswitch拨打分机号
- win7电脑计算机上配置无线网,Win7无线网络共享设置方法
- MATLAB之自动控制原理(1)
- ValueError: empty range for randrange() (0, 0, 0)
- DSX2-8000如何校准?校准流程?
- 一对一培训之视频免费分享-2018-03-19-第 04 阶段-部署-基础-环境
- 欧洲杯第五周的比赛闲聊
- (一)虚拟化及云原生基本概念及原理解析
- 计算机辅助数学教学论文,计算机辅助数学教学论文
热门文章
- muduo学习笔记 - 第3章 多线程服务器的适合场合与常用编程模型
- HDU 2050 折线分割平面
- c++ primer 习题13.39自己做的答案
- 比赛结果预测_决策树_随机森林(通用 数据挖掘入门与实践-实验5)
- 递归与分治——二分查找算法(折半查找算法)
- bootstrap form表单提交_[Selenium]28. 处理表单元素
- input type=text 无法使用.html(),input type=”text” (Elements) – HTML 中文开发手册
- html设置excel打开新窗口,怎么在excel的大页面上设置第几页第几页的
- linux最基础安装,Linux Nginx最基础的十大安装步骤(2)
- 3GPP Release、TSG、RAN等概念介绍