【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 ...
随机推荐
- C# 简单的定时器使用
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- C# vb .net实现轮廓特效滤镜
在.net中,如何简单快捷地实现Photoshop滤镜组中的轮廓特效呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第一步 ...
- RabbitMQ知识梳理
RabbitMQ 基本概念 交换机类型: RabbitMQ 运转流程: AMQP协议 入门使用 安装环境: 交换机和队列: 进阶使用 消息去从 消息确认投递 消息防止丢失 过期时间 (TTL) 消息分 ...
- Flutter Platform Channels
Flutter Platform Channels(一) https://www.jianshu.com/p/33ac774f99b1 https://www.jianshu.com/p/c1e206 ...
- vue-router中的router-view的困扰
刚开始接触vue的时候有很长一段时间被router-view的渲染困扰着,不知道为什么明明有很多router-link和不同的router-view,但是为什么渲染的时候不会出现错乱呢 这是我自己写的 ...
- EVM靶机渗透
前言 靶机下载地址: https://download.vulnhub.com/norzhctf/Basilic.ova 通过渗透靶机来学习相关知识以便提高在真实环境的渗透能力 ==. 安装: 我是用 ...
- 在Controller中添加事务管理
文章参考了此博客: https://blog.csdn.net/qq_40594137/article/details/82772545 写这篇文章之前先说明一下: 1. Controller中添加事 ...
- day 03作业
目录 作业 简述执行Python程序的两种方式以及他们的优缺点: 简述Python垃圾回收机制: 对于下述代码: 10的引用计数为多少? x对应的变量值257的引用计数为多少? 简述Python小整数 ...
- 使用opencv去操作树莓派摄像头保存图片和视频
利用树莓派的摄像头去学习opencv的基本操作 —— 保存图片和视频 1.使用Opencv去控制树莓派的摄像头拍照并保存到本地,主要使用cv2和numpy库 #!/usr/bin/python3 # ...
- 26.centos7基础学习与积累-012-文件和目录的属性
从头开始积累centos7系统运用 大牛博客:https://blog.51cto.com/yangrong/p5 1.文件的属性(文件的信息描述): [root@python01 ~]# ls -l ...