【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的所有方方面面,比 ...
随机推荐
- ramnit病毒
今天打开Hbuilder,发现每个html文档都有如下代码: <SCRIPT Language=VBScript><!--DropFileName = "svchost.e ...
- ios手势
iOS 手势操作:拖动.捏合.旋转.点按.长按.轻扫.自定义 大 中 小 1.UIGestureRecognizer 介绍 手势识别在 iOS 中非常重要,他极大地提高了移动设备的使用便捷性. i ...
- Oracle读写分离架构
读写分离是架构分布式系统的一个重要思想.不少系统整体处理能力并不能同业务的增长保持同步,因此势必会带来瓶颈,单纯的升级硬件并不能一劳永逸.针对业务类型特点,需要从架构模式上进行一系列的调整,比如业务模 ...
- ALT+数字直接取得字符的原理
字符 字节码 utf-8编码 机器二进制码 之间的联系 byte数组与二进制码关系参考文献 例如:字符“我” byte字节码是 [-26, -120, -111] 绝对值源码 [00011010, 0 ...
- UITableView的scrollToRowAtIndexPath:atScrollPosition:animated的崩溃
UITableView的scrollToRowAtIndexPath:atScrollPosition:animated的崩溃 [摘要:reason: '-[UITableView _conten ...
- CodeForces 282C(位运算)
C. XOR and OR time limit per test 2 seconds memory limit per test 256 megabytes input standard input ...
- 三、jQuery--jQuery基础--jQuery基础课程--第2章 jQuery 基础选择器
1.#id选择器 jquery能使用CSS选择器来操作网页中的标签元素.如果你想要通过一个id号去查找一个元素,就可以使用如下格式的选择器:$("#my_id") 其中#my_id ...
- php的错误级别
error_reporting() 用于设置 PHP 的报错级别并返回当前级别.(PHP 4, PHP 5) 函数能够在运行时设置 error_reporting 指令. PHP 有诸多错误级别,使用 ...
- APP测试流程(个人整理)
- elk安装(这个是初级的可以把这个套件安上)
http://udn.yyuap.com/doc/logstash-best-practice-cn/index.html ELK其实并不是一款软件,而是一整套解决方案,是三个开源软件Elastics ...