NZOJ 模拟赛4
T1 数字游戏
大家列队后,都觉得累了,于是一起坐到院子中的草地上休息。这时Anna突然想跟她的最大竞争对手Cici玩一个数字游戏,她要你编写程序帮助她取得胜利。
第i次游戏初始时有一个整数N_i(1 <= N_i <= 1,000,000),游戏以Anna先开始,然后是Cici,这样两人轮流进行。在每一轮中,一个游戏者可以把当前整数中减去原整数中最大的数字或最小的非零数字,形成一个新的整数。例如从3014开始,我们可以减去1或4,分别形成整数3013或3010.直到这个整数变为0时游戏结束。游戏结束时最后轮到那人就是胜利者。
Anna和Cici总共进行G(1 <= G <= 100)次游戏。请你帮助确定每次游戏到底是Anna还是Cici获得胜利。Anna和Cici两人都是足够聪明的,如果轮到某人时,对方留给她的数是必胜的,她将毫不犹豫按最优策略取得胜利。
假如某次游戏N_i=13。Anna先走并从中减去3,剩下10,然后Cici只能减去1,剩下9,Anna减去9,剩下0游戏结束,Anna取得这次游戏的胜利。
考察对SG函数的运用,为所有后继节点权值的 \(Mex\) 和,如果 \(SG[x] ~ = ~ 0\) 则必败,否则必胜。
参考代码
#include<bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int sg[N];
int check(int x)
{
if (sg[x] != -1) return sg[x];
int maxx = 0, minn = 9, k = x;
while (k)
{
int t = k % 10;
k /= 10;
if (t) maxx = max(t, maxx), minn = min(t, minn);
}
unordered_set<int> S;
S.insert(check(x - maxx));
S.insert(check(x - minn));
for (int i = 0; ; i ++ )
if (!S.count(i))
return sg[x] = i;
}
void solve()
{
int n;
cin >> n;
check(n) ? puts("YES") : puts("NO");
}
int main()
{
memset(sg, -1, sizeof sg);
sg[0] = 0;
int T;
cin >> T;
while (T -- ) solve();
}
T2 电话时间(phone)
某人总是花很多时间给父母打电话。有一次他记录了打电话的开始时间和结束时刻t1和t2,请你帮他算算此次通话一共用了多少秒。又有一次,他记录了打电话的开始时刻t1和通话的时间长度len,请你帮他计算他在什么时刻结束通话。
已知每次通话时间小于24个小时。
小模拟,按照题目要求模拟即可。
T3 开心农场
Chroi整个暑假忙于OI,没什么时间照顾开心农场,需要你的帮助。他可以告诉你他哪些时间上线,你要做的就是告诉他最多可赚多少钱。而且由于Chroi的农场等级比较低,所以只能种单季作物,就是只能收获一次的。
在开心农场中,每个用户都有一定数目的土地,每次上线可以做的事是在土地上摘果实、卖果实、种下种子,每块土地上只能种一种作物,每块土地各自独立。
假设Chroi每次上线的时长是一瞬间,他能在瞬间做完所有他想做的事。
输入文件包含多行,第一行有三个正整数n,m,t,k,分别表示Chroi的农场中有n块地,共有m种作物可以选择,一天有t个时刻,有k个时刻Chroi可以上线。
接下来的m行每行输入三个正整数,第一个数字表示种子价格,第二个数字表示种子成熟时间(小于t),第三个数字表示成熟后果实的售价。再次提示,这些都是整数。
再接下来的一行有k个自然数,保证该整数为0,1,2...t-1中的一个,为Chroi可以上线的时刻。这k个自然数不会重复。
输入文件到此结束。
首先很自然的一个想法是,这么多地,如果种植了某种作物,又种植的其他作物,那么只种价值最高的那种作物一定是最优的。
第二个想法是,如果有两种作物种植时间相等,那么选择最划算的那个一定最优。
然后考虑如何dp,很直接的想法是按照时间dp,对于当前时间节点 \(dp[i]\),如果存在一个时间节点 \(dp[j](j < i)\),Chroi恰好能在 \(i, ~ j\) 这两个时刻都上线,那么可以列出状态转移方程 \(dp[i] = dp[j] + w\),\(w\) 表示能种植在这段区间的作物,利用一个前缀 \(max\) 数组存储最优 \(w\),每次合法时考虑种植最优的即可。
参考代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 3010;
int n, m, t, k, st[N];
ll w[N], dp[N], maxx[N];
int main()
{
cin >> n >> m >> t >> k;
for (int i = 1; i <= m; i ++ )
{
ll a, b, c;
cin >> a >> b >> c;
w[b] = max(w[b], c - a);
}
for (int i = 1; i < t; i ++ ) maxx[i] = max(maxx[i - 1], w[i]);
for (int i = 1; i <= k; i ++ )
{
int a;
cin >> a;
st[a] = 1;
}
for (int i = 0; i < t; i ++ )
for (int j = 0; j < i; j ++ )
if (st[i] && st[j])
dp[i] = max(dp[j] + maxx[i - j] * n, dp[i]);
ll ans = 0;
for (int i = 0; i < t; i ++ ) ans = max(ans, dp[i]);
cout << ans << endl;
return 0;
}
T4 选票统计
有k名候选者,有n(n<=10000)人参加了投票,与以往不同的是,这次所有得票数超过n/4的人都是优胜者。请你统计收到的n张选票,找出符合条件的优胜者(可能不止一个)。
第一行一个整数n。
第二行有n个正整数,每个数字代表一张选票所选的人的编号(编号<longint范围)。
每行一个正整数,为优胜者的编号,由小到大,一行一个优胜者的编号。如果没人获胜,则输出“No such person.”。
模拟一下,开一个桶记录票数,扫一遍就是答案。
NZOJ 模拟赛4的更多相关文章
- NOIP模拟赛20161022
NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...
- NOI模拟赛 Day1
[考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...
- NOIP第7场模拟赛题解
NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...
- contesthunter暑假NOIP模拟赛第一场题解
contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...
- NOIP模拟赛 by hzwer
2015年10月04日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...
- 小奇模拟赛9.13 by hzwer
2015年9月13日NOIP模拟赛 by hzwer (这是小奇=> 小奇挖矿(explo) [题目背景] 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值w)的飞船,按既定路线依次飞 ...
- PKUSC 模拟赛 day1 下午总结
下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...
- [GRYZ]寒假模拟赛
写在前面 这是首次广饶一中的OIERS自编自导,自出自做(zuo)的模拟赛. 鉴于水平气压比较低,机(wei)智(suo)的WMY/XYD/HYXZC就上网FQ下海找了不少水(fei)题,经过他们优( ...
- BZOJ2741: 【FOTILE模拟赛】L
2741: [FOTILE模拟赛]L Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 1170 Solved: 303[Submit][Status] ...
- 大家AK杯 灰天飞雁NOIP模拟赛题解/数据/标程
数据 http://files.cnblogs.com/htfy/data.zip 简要题解 桌球碰撞 纯模拟,注意一开始就在袋口和v=0的情况.v和坐标可以是小数.为保险起见最好用extended/ ...
随机推荐
- 关于腾讯会议pc端的使用教程
一.首先先在官网下载pc端 下面是连接:腾讯会议_腾讯会议下载- 腾讯云 (tencent.com) 点击免费下载即可. 二.登录并创建会议 选择一种登录方式. 创建会议有快速会议和预定会议两种方式 ...
- Unix、Linux、GNU 关系梳理
之前写了一篇 MSYS2.MinGW 和 Cygwin 关系梳理的博客,但是要讲清它们几个的关系最好还是先了解一下操作系统的发展历程.遂补充了这篇博客. UNIX:现代操作系统的始祖 Operatin ...
- HttpContext.SignInAsync 失效(表面解决了问题,未深入到.net core 源码去找问题,记录一下,等有时间翻一下.net core 源码试试能不能找到根本原因)
今天在弄 identityServer4 项目的时候,发现好好的登录竟然没用了. 各种跟踪后发现是 HttpContext.SignInAsync 这个方法不写cookies了 原本经过这个方法后,会 ...
- 【YashanDB知识库】应用绑定参数的慢查询,慢日志抓取不到
[问题分类]功能使用 [关键字]慢日志.绑定参数 [问题描述]应用下发的绑定参数的SQL,慢日志功能抓取不到查询耗时超过阈值的执行SQL [问题原因分析]慢日志的功能没有考虑绑定参数的情况 [解决/规 ...
- RuleLinKClient - 再也不担心表达引擎宕机了
原来有这么多时间 六月的那么一天,天气比以往时候都更凉爽,媳妇边收拾桌子,边漫不经心的对我说:你最近好像都没怎么阅读了. 正刷着新闻我,如同被一记响亮的晴空霹雳击中一般,不知所措.是了,最近几月诸事凑 ...
- 总结篇4:redis 核心数据存储结构及核心业务模型实现应用场景
总结篇4:redis 核心数据存储结构及核心业务模型实现应用场景 redis 和memcached 有什么区别?为什么在高并发下,单线程的redis 比多线程的效率高? mc 可以缓存图片和视频,re ...
- CSS – initial, Inherit, unset, revert
参考 Understanding the "Initial", "Inherit" and "Unset" CSS Keywords [译] ...
- java基础 -网络编程笔记
666,InetAddress package com.hspedu.api; import java.net.InetAddress; import java.net.UnknownHostExce ...
- Vue3——axios 安装和封装
axios 安装和封装 安装 npm install axios 最后通过 axios 测试接口!!! axios 二次封装 在开发项目的时候避免不了与后端进行交互,因此我们需要使用 axios 插件 ...
- Adobe Acrobat XI Pro 合并多个PDF文件时弹出Flash提示
事件起因: 某知名同事在使用 Acrobat XI Pro 软件合并多个PDF文件时弹出Flash提示报错,需要安装 FlashPlayer 解决办法: 合并文件的时候右上角选项-文件类型,选择& ...