【noip2014T3】
上文有提到noip2014还有没A的嘛。。就先把这个坑给填了
flappy bird好sad啊 还是先做解方程
八中的数据好强了,然而我最后凑了四个质数就A了,感谢shy!
作为联赛最后一题,学习它的思考方式比较关键.
前30分,人人都能得吧,不多说.
我一开始做,居然没有看到高精度,搞什么啊...看到1010000居然没有自动次方,晕.
看到了超长的a[i]后,可能很多人都会跟我一样,啊啊啊高精度,啊啊啊不想写,然后就能自然地诞生出取模的想法啦!
而且,五次方以上的方程没有求根公式,要么枚举要么hash!
当f(x)==0,f(x)%p==0.再进一步考虑,f(x+p)%p==f(x)%p,Po姐的blog没有写为啥,相信这个连我都能懂,所有人都可以自己脑补了.
对于每个ans,将它mod p,预处理出对于每一个质数,x取0~p-1时f(x)是否为0.
接下来是考虑冲突的问题,每一篇题解上都说冲突概率很小...个人觉得..如果出题人要卡你的话,3w以内的质数是全都可以被卡掉的吧..
不过思考也不成熟,哈希嘛尽管用就行了.
#include<cstdio>
#include<cstdio>
#define ll long long
using namespace std;
,,,,};
ll n,m,tot=;ll f[][];ll b[];
ll a[][];
inline void input(int x)
{
];);
;s[i];i++)
{
if(s[i]=='-')flag=true;
;j<=;j++)a[x][j]=(a[x][j]*+s[i]-')%pri[j];
}
;j<;j++)a[x][j]=pri[j]-a[x][j];
}
inline ll F(int x,int j)
{
ll re=;
;i--)
re=(re*x+a[i][j])%pri[j];return re;
}
int main()
{
//freopen("my.out","w",stdout);
scanf("%lld%lld",&n,&m);
;i<=n;i++)input(i);
;j<=;j++);i<pri[j];i++)
f[i][j]=F(i,j);
;ans<=m;ans++)
{
;
;i<=;i++)
{
int p=pri[i],x=ans%p;
)s++;
}
)++tot,b[tot]=ans;
}
printf("%lld\n",tot);
;i<=tot;i++)printf("%lld\n",b[i]);
}
【飞扬的小鸟】
终于开坑了。。。其实好久之前就开坑了。。。。
之前有一个很搞笑的trick,在罗oj上交了一发,等待&pending.....等了好几个月...
时隔半年之后再做,做到了大概七十分的样子...然后还是有wa的..不管它65分了
又过了有三个月吧 就是今天
因为学校迎检各种没课没作业 有充足的时间来搞这道题 就写了完全背包...
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#define inf 2000000000
#define M 10010
using namespace std;
int n,m,k,p,sum,cnt;
int lo[M],ans[M],hi[M],up[M],down[M],d[M];
int f[M][1010];
int main()
{
//freopen("219.in","r",stdin);
//freopen("219.out","w",stdout);
scanf("%d%d%d",&n,&m,&k);
for(int i=0;i<=n-1;i++)scanf("%d%d",&up[i],&down[i]);
for(int i=0;i<=n;i++)lo[i]=0,hi[i]=m+1;
for(int i=1;i<=k;i++)
{
scanf("%d",&p);
d[p]=1;scanf("%d%d",&lo[p],&hi[p]);
}
for(int i=0;i<=n;i++)
for(int j=0;j<=m;j++)f[i][j]=inf;
for(int j=1;j<=m;j++)f[0][j]=0;
for(int j=0;j<=n;j++)ans[j]=inf;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(j>=up[i-1]){
f[i][j]=min(f[i][j],f[i-1][j-up[i-1]]+1);
f[i][j]=min(f[i][j],f[i][j-up[i-1]]+1);
} //完全背包很好理解吧..希望自己比赛的时候能想到
if(j==m){
for(int k=j-up[i-1];k<=m;k++){
f[i][j]=min(f[i][j],f[i-1][k]+1);
f[i][j]=min(f[i][j],f[i][k]+1);//个人觉得这句话可以del,然而wa了,然后顿悟!这也是我为什么一开始70分中有wa的原因,前一个可以一直跳一直跳跳到m!!!
}
}
}
for(int j=lo[i]+1;j<=hi[i]-1;++j)
if(j+down[i-1]<=m)f[i][j]=min(f[i][j],f[i-1][j+down[i-1]]);
for(int j=1;j<=lo[i];++j)f[i][j]=inf;
for(int j=hi[i];j<=m;j++)f[i][j]=inf;
for(int j=1;j<=m;j++)ans[i]=min(ans[i],f[i][j]);
}
int sum=0;
for(int i=0;i<=n;i++)if(d[i]==1&&ans[i]<inf)sum++;
if(ans[n]==inf)printf("0\n"),printf("%d",sum);
else printf("1\n"),printf("%d",ans[n]);
}
【noip2014T3】的更多相关文章
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- 【原】谈谈对Objective-C中代理模式的误解
[原]谈谈对Objective-C中代理模式的误解 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 这篇文章主要是对代理模式和委托模式进行了对比,个人认为Objective ...
- 【原】FMDB源码阅读(三)
[原]FMDB源码阅读(三) 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 FMDB比较优秀的地方就在于对多线程的处理.所以这一篇主要是研究FMDB的多线程处理的实现.而 ...
- 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新
[原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...
- 【调侃】IOC前世今生
前些天,参与了公司内部小组的一次技术交流,主要是针对<IOC与AOP>,本着学而时习之的态度及积极分享的精神,我就结合一个小故事来初浅地剖析一下我眼中的“IOC前世今生”,以方便初学者能更 ...
- Python高手之路【三】python基础之函数
基本数据类型补充: set 是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object ...
- Python高手之路【一】初识python
Python简介 1:Python的创始人 Python (英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/), 是一种解释型.面向对象.动态数据类型的高级程序设计语言,由荷兰人Guido ...
- 【开源】简单4步搞定QQ登录,无需什么代码功底【无语言界限】
说17号发超简单的教程就17号,qq核审通过后就封装了这个,现在放出来~~ 这个是我封装的一个开源项目:https://github.com/dunitian/LoTQQLogin ————————— ...
- 【原】FMDB源码阅读(二)
[原]FMDB源码阅读(二) 本文转载请注明出处 -- polobymulberry-博客园 1. 前言 上一篇只是简单地过了一下FMDB一个简单例子的基本流程,并没有涉及到FMDB的所有方方面面,比 ...
随机推荐
- HTML简历表格
效果图 <!DOCTYPE > <html> <head> <meta charset="utf-8" /> </head&g ...
- [Android Pro] APK
svn updatesvn status ls -alsvn log --limit 8 > RELEASE_NOTE.txt cat RELEASE_NOTE.txt chmod a+x gr ...
- September 1st 2016 Week 36th Thursday
Everything is going on, but don't give up trying. 万事随缘,但不要放弃努力. There are numerous things that we ca ...
- mysql 三个表连接查询
权限表(permission)10 字段名称 类型 约束 描述 authorityid integer Pk not null 权限流水号id PK userNameId int not nul ...
- mysql中select五种子句和统计函数
select 五种子句顺序 where 条件 group by 分组 having 把结果进行再次筛选 order by 排序 limit 取出条目 统计函数 max(列名) 求最大 min( ...
- .net学习笔记----WebConfig常用配置节点介绍
一.配置文件入门 .Net提供了一种保存项目配置信息的办法,就是利用配置文件,配置文件的后缀一般是.config.在WinForm程序中配置文件一般是App.config.在Asp.net中一般默认是 ...
- (编辑器)Jquery-EasyUI集合Kindeditor编辑器
1.在html里面添加 list.html list.html (function ($, K) { if (!K) throw "KindEditor未定义!"; functio ...
- Sexagenary Cycle(天干地支法表示农历年份)
Sexagenary Cycle Time Limit: 2 Seconds Memory Limit: 65536 KB 题目链接:zoj 4669 The Chinese sexagen ...
- poj 1724:ROADS(DFS + 剪枝)
ROADS Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10777 Accepted: 3961 Descriptio ...
- Ajax 的 GET 和 POST 模式
Ajax 异步请求数据的方式有两种:GET 和 POST. 如果是 GET 模式,则直接将数据放置到异步请求的 URL 地址中,而 send() 方法不发送任何数据: var queryString ...