【NOIP2014】真题回顾
生活大爆炸版石头剪刀布 就是个模拟,不说了
联合权值 枚举每个点,统计它任意两个儿子的联合权值,统计的时候维护sum和max就行了
飞扬的小鸟 比较好的DP题,不难想到用dp[i][j]表示到达第i列,高度j的最小点击次数,直接枚举i,j转移到下一列的位置会TLE,需要优化
#include<iostream>
#include<cstring>
#include<cstdio>
#define min(x,y) ((x)<(y)?(x):(y))
#define max(x,y) ((x)>(y)?(x):(y))
using namespace std;
const int N=10010;
const int M=2010;
const int INF=100000;
const int ch_top=4e7+3;
char ch[ch_top],*now_r=ch-1;
inline int read(){
while(*++now_r<'0');
register int x=*now_r-'0';
while(*++now_r>='0')x=x*10+*now_r-'0';
return x;
}
int n,m,k,X[N],Y[N],cnt[N],s[N],num;
int dp[N][M],low[N],high[N],Max;
int main()
{
// freopen("a.in","r",stdin);
fread(ch,1,ch_top,stdin);
n=read(); m=read(); k=read();
for(int i=0;i<n;++i){
X[i]=read(); Y[i]=read();
low[i]=1; high[i]=m;
}
low[n]=1; high[n]=m;
int P,L,H;
while(k--){
P=read(); L=read(); H=read();
low[P]=L+1; high[P]=H-1;
++cnt[P];
}
for(int i=1;i<=n;++i)
cnt[i]+=cnt[i-1];
for(int i=0;i<=n;++i)
for(int j=0;j<=m;++j)
dp[i][j]=INF;
for(int i=1;i<=m;++i)
dp[0][i]=0;
for(int i=0;i<n;++i){
num=0;
for(int j=high[i];j>=low[i];--j)//从上往下依次转移,有利于后面优化时间
if(dp[i][j]<INF){//先转移向上跳的情况
s[++num]=j;
Max=max(Max,i);
int g=(low[i+1]-j)/X[i];//直接计算需要向上跳几次达到low[i+1]
if(g<1) g=1;
int h=j+g*X[i];
if(h<low[i+1]) ++g,h+=X[i];
while(h<=high[i+1]){
if(dp[i+1][h]>dp[i][j]+g)
dp[i+1][h]=dp[i][j]+g;
else break;//优化时间,如果dp[i+1][h]已经有了更好的方案,一定是向上跳了若干步后转移过来的,那么dp[i+1][h+k*X[i]]也可以被跳到
++g; h+=X[i];
}
if(high[i+1]==m)
dp[i+1][m]=min(dp[i+1][m],dp[i][j]+(m-j)/X[i]+1);//计算到天花板的步数并转移
}
for(int l=1,j=s[l];l<=num;j=s[++l]) //后转移向下落的情况
if(dp[i][j]<INF){
int t=j-Y[i];
if(low[i+1]<=t&&t<=high[i+1])
dp[i+1][t]=min(dp[i+1][t],dp[i][j]);
}
}
int ans=INF;
for(int i=low[n];i<=high[n];++i)
if(dp[n][i]<INF)
ans=min(ans,dp[n][i]);
if(ans<INF){
puts("1");
printf("%d\n",ans);
return 0;
}
puts("0");
printf("%d\n",cnt[Max]);
return 0;
}
无线网络发射器选址 想怎么暴力就怎么暴力
寻找道路 按照题意,先标记所有能到终点的点,然后标记 所有出边指向的点都与终点连通的点,最后找一条最短的就行了
解方程 这题直接用高精干会爆炸,我们发现,如果原先式子的结果为0,对一个大质数取模后仍为0,原先式子的结果为你用的大质数的倍数,取模得到的结果也是0,这样的话你就被卡了,但是出题人怎么知道你是用19260817还是998244353或者19491001再或者是2147483647
还有,计算的时候用不用秦九韶都是O(n)的,也不知道这玩意有什么用处..
#include<iostream>
#include<cstring>
#include<cstdio>
#define int long long
using namespace std;
const int MAXN=110;
const int MAXM=1000010;
const int MOD=2147483647;
int n,m,a[MAXN];
inline int read(){
int x=0,f=1; char c=getchar();
while(c<'0') { if(c=='-') f=-1; c=getchar();}
while(c>='0') x=(x*10+c-'0')%MOD,c=getchar();
return x*f;
}
int cnt,ans[MAXM];
inline bool check(int x){
int ans=0,y=1;
for(int i=0;i<=n;++i){
ans=(ans+a[i]*y)%MOD;
y=y*x%MOD;
}
return ans==0;
}
signed main()
{
scanf("%lld%lld",&n,&m);
for(int i=0;i<=n;++i)
a[i]=read();
for(int i=1;i<=m;++i)
if(check(i)) ans[++cnt]=i;
printf("%lld\n",cnt);
for(int i=1;i<=cnt;++i)
printf("%lld\n",ans[i]);
puts("");
return 0;
}
【NOIP2014】真题回顾的更多相关文章
- 2016.1.4~2016.1.7真题回顾!-- HTML5学堂
2016.1.4~2016.1.7真题回顾!-- HTML5学堂 2015悄然而逝,崭新的2016随即而行!生活需要新鲜感,学习JavaScript的过程需要有成就感!成就感又是来自于每一天的不断练习 ...
- 2015.12.29~2015.12.30真题回顾!-- HTML5学堂
2015.12.29~2015.12.30真题回顾!-- HTML5学堂 吃饭,能够解决饥饿,提供身体运作机能.练习就像吃饭,强壮自己,提升编程技能,寻求编程技巧的最佳捷径!吃饭不能停,练习同样不能停 ...
- 2015.12.21~2015.12.24真题回顾!-- HTML5学堂
2015.12.21~2015.12.24真题回顾!-- HTML5学堂 山不在高,有仙则名!水不在深,有龙则灵!千里冰封,非一日之寒!IT之路,须厚积薄发!一日一小练,功成不是梦!小小技巧,尽在HT ...
- 【NOIP2015】真题回顾
题目链接 神奇的幻方 按照题意模拟 信息传递 不难想到这是一个基环树的森林,找一个最小环就可以了 斗地主 毒瘤搜索题,时限不紧,但是要考虑全所有情况 需要注意的一些地方: 先枚举顺子.再枚举四带二.三 ...
- 2019年京东Java研发岗社招面经(面试经历+真题总结+经验分享)!
本篇先以日历形式回顾秋招之路,方便各位参考某厂的处理进度:然后是总结归纳春秋招Java面试题库:最后做个总结还有展望,开始新的征程~ 面试经历京东面试真题面试经验分享1.面试经历 2018年的冬季特别 ...
- Noip前的大抱佛脚----Noip真题复习
Noip前的大抱佛脚----Noip真题复习 Tags: Noip前的大抱佛脚 Noip2010 题目不难,但是三个半小时的话要写四道题还是需要码力,不过按照现在的实力应该不出意外可以AK的. 机器翻 ...
- 历年NOIP真题总结
前言:最近把历年的NOIP真题肝了一遍(还有3个紫题先咕掉了),主要是到1998年的提高组的题.把题目的做题简要思路搁在这儿,一个是为了考前翻一翻,想想自己的哪些思路要梳理的什么什么的,反正怎么说呢, ...
- NOIP真题索引
NOIP真题索引 NOIP2019 Day 1 格雷码 括号树 树上的数 Day 2 Emiya 家今天的饭 划分 树的重心 NOIP2018 Day 1 铺设道路 货币系统 赛道修建 Day 2 旅 ...
- 网易实习笔试真题C/C++
刚做的时候根本就没有想到解题思路,刚好看到了别人的思路,自己写了一下.里面对unordered_map及vector二维数组的建立很灵活,另外区别了一下map,unordered_map,hash_m ...
随机推荐
- MVC中根据后台绝对路径读取图片并显示在IMG中
数据库存取图片并在MVC3中显示在View中 根据路径读取图片: byte[] img = System.IO.File.ReadAllBytes(@"d:\xxxx.jpg"); ...
- 2019 华云数据java面试笔试题 (含面试题解析)
本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.华云数据等公司offer,岗位是Java后端开发,最终选择去了华云数据. 面试了很多家公司,感觉大部分公司考察的点 ...
- IntelliJ IDEA web项目进行数据库连接时出现java.lang.ClassNotFoundException: com.mysql.jdbc.Driver错误解决办法
首先看报错信息: 意思是找不到类: com.mysql.jdbc.Driver.也就是说tomcat找不到MySQL数据库连接要用的jar包! 出现这种错误的原因是: 项目中没有导入这个jar包, ...
- Python进阶(六)----装饰器
Python进阶(六)----装饰器 一丶开放封闭原则 开放原则: 增加一些额外的新功能 封闭原则: 不改变源码.以及调用方式 二丶初识装饰器 装饰器: 也可称装饰器函数,诠释开放封闭原则 ...
- PHP基于TP5使用Websocket框架之GatewayWorker开发电商平台买家与卖家实时通讯
前段时间公司提了一个新的需求,在商品的详情页要实现站内买家和商品卖家实时通讯的功能以方便沟通促成交易,要开发此功能当时首先考虑到的就是swoole和workerman了,从网上大概了解了一下关于这两款 ...
- Mysql中类似于oracle中nvl()函数的ifnull()函数
IFNULL(expr1,expr2) 如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2.IFNULL()返回一个数字或字符串值,取决于它被使用的上下文环境. my ...
- 使用Prometheus针对自己的服务器采集自定义的参数
用一个简单的例子来说明. 我用express和http搭了一个最简单的服务器,监听在8081端口上. 在metrics endpoint上,我会打印出这个服务器从启动至今,服务了多少次请求.这里我只是 ...
- Flask项目初始化
数据库实现命令初始化 1.实现命令主脚本 # coding=utf-8 from functools import wraps from getpass import getpass import s ...
- 初识osquery
初识osquery osquery是一个由Facebook的开源用于对系统进行查询,监控以及分析的一款软件. osquery对其的说明如下: osquery将操作系统公开为高性能关系数据库.这允许您编 ...
- Android笔记(七十五) Android中的图片压缩
这几天在做图记的时候遇第一次遇到了OOM,好激动~~ 追究原因,是因为在ListView中加载的图片太大造成的,因为我使用的都是手机相机直接拍摄的照片,图片都比较大,所以在加载的时候会出现内存溢出,那 ...