【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 ...
随机推荐
- Hive学习笔记(二)—— 安装配置
Hive安装配置及基本操作 1. Hive安装及配置 (1). 上传文件到Hadoop102节点,解压到/opt/moudle (2). 修改/opt/module/hive/conf目录下的hive ...
- AESUtil
AESUtil package cn.ucaner.alpaca.common.util; import sun.misc.BASE64Decoder; import sun.misc.BASE64E ...
- .net core webapi通过中间件获取请求和响应内容
本文主要根据中间件来实现对.net core webapi中产生的请求和响应数据进行获取并存入日志文件中: 这里不详细介绍日志文件的使用.你可以自己接入NLog,log4net,Exceptionle ...
- 使用poi调整字体格式、添加单元格注释、自动调整列宽
1 创建新的工作铺 import java.io.FileOutputStream; import org.apache.poi.hssf.usermodel.HSSFCell; import org ...
- JavaScript之DOM节点操作
a.appendChild(b) 追加标签 a是b的父级,将b追加到a中 追加标签 a.insertBefore(b,c); a是b和c的父级,在c前面插入b 删除标签 a.removeCli ...
- 【Tomcat】虚拟主机
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDepl ...
- Nginx 配置文件nginx.conf中文详解
######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_ ...
- Eclipse上Maven环境配置使用
1. 安装配置Maven: 1.1 从Apache网站 http://maven.apache.org/ 下载并且解压缩安装Apache Maven. Maven下载地址: http://maven. ...
- nginx-location语法匹配优先级
- OpenStack核心组件-keystone
1. Keystone介绍 keystone是OpenStack的组件之一,用于为OpenStack家族中的其它组件成员提供统一的认证服务,包括身份验证.令牌的发放和校验.服务列表.用户权限的定义等等 ...