How to 对拍?
对拍从数学的统计学角度来说是一个好的方法,至少能在你竞赛中帮你拿回一些分
--yzr大牛
pas的对拍一开始还没写过,突然想学一下对拍。
那么就学吧。
dp水题(搜索):https://www.luogu.org/problem/show?pid=1164
【题目名称】 小A点菜
【题目背景】
uim神犇拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家……餐馆,很低端的那种。
uim指着墙上的价目表(太低级了没有菜单),说:“随便点”。
【题目描述】
不过uim由于买了一些辅(e)辅(ro)书,口袋里只剩M元(M<=10000)。
餐馆虽低端,但是菜品种类不少,有N种(N<=100),第i种卖ai元(ai<=1000)。由于是很低端的餐馆,所以每种菜只有一份。
小A奉行“不把钱吃光不罢休”,所以他点单一定刚好吧uim身上所有钱花完。他想知道有多少种点菜方法。
由于小A肚子太饿,所以最多只能等待1秒。
【输入输出格式】
输入格式:
第一行是两个数字,表示N和M。
第二行起N个正数ai(可以有相同的数字,每个数字均在1000以内)。
输出格式:
一个正整数,表示点菜方案数。
【输入输出样例】
输入样例#1:
4 4
1 1 2 2
输出样例#1:
3
这是暴力程序dfs:(dfs)
var a:array[..] of longint;
u:array[..] of boolean;
n,m,i,ans:longint;
procedure dfs(k,s:longint);
var i:longint;
begin
if (s>=m)or(k=n) then begin
if s=m then inc(ans); exit;
end;
for i:=k+ to n do begin
if a[i]>m-s then exit;
if u[i]=false then begin
u[i]:=true;
dfs(i,s+a[i]);
u[i]:=false;
end;
end;
end;
procedure qsort(l,r:longint);
var
i,j,mid,p:longint;
begin
i:=l;
j:=r;
mid:=a[(l+r) div ];
repeat
while a[i]<mid do inc(i);
while a[j]>mid do dec(j);
if i<=j then begin
p:=a[i]; a[i]:=a[j]; a[j]:=p;
inc(i);
dec(j);
end;
until i>j;
if l<j then qsort(l,j);
if i<r then qsort(i,r);
end;
begin
assign(input,'in.txt');
assign(output,'out.txt');
reset(input);
rewrite(output);
readln(n,m);
fillchar(u,sizeof(u),false);
for i:= to n do read(a[i]);
qsort(,n);
fillchar(u,sizeof(u),false);
dfs(,);
writeln(ans);
close(input);
close(output);
end.
这是dp程序:(dp)
var j,n,m,i:longint;
f,v:array[..]of longint;
begin
assign(input,'in.txt');
assign(output,'out.txt');
reset(input);
rewrite(output);
readln(n,m);
f[]:=;
for i:= to n do read(v[i]);
for i:= to n do
for j:=m downto v[i] do
f[j]:=f[j]+f[j-v[i]];
writeln(f[m]);
close(input);
close(output);
end.
此外我们呢还需要写一个数据生成的程序(maker)
var n,m,i:longint;
begin
assign(output,'in.txt');
rewrite(output);
randomize;
n:=random();
m:=random();
writeln(n,' ',m);
for i:= to n do write(random(),' ');
writeln;
close(output);
end.
然后写一个可以重复利用的批处理文件(duipai.bat)
:loop
maker.exe
dfs.exe
dp.exe
fc outljc.txt outstd.txt
if errorlevel goto end
goto loop
:end
这是DOS语言,意思差不多是这样的:
loop//循环
maker.exe//运行 数据生成器
dfs.exe//运行 正确程序
dp.exe//运行 待检测程序
fc o1.txt o2.txt//比较 两个程序的输出结果
if errorlevel goto end//如果 有错误(两个输出文件不一样) 就跳到end
goto loop//跳到loop
:end
然后你就可以继续写下面的题了,不用管他了,
如果等你下一题写好了,还没有退出的话就说明你的程序基本真确:
正在比较文件out.txt 和OUT.TXT
PC:找不到差异
可以参考有图有真相的http://www.cnblogs.com/yangqingli/p/4928174.html
How to 对拍?的更多相关文章
- 相机拍的图,电脑上画的图,word里的文字,电脑屏幕,手机屏幕,相机屏幕显示大小一切的一切都搞明白了!
相机拍的图,电脑上画的图,word里的文字,电脑屏幕,手机屏幕,相机屏幕显示大小一切的一切都搞明白了! 先说图片X×dpi=点数dotX是图片实际尺寸,简单点,我们只算图片的高吧,比如说拍了张图片14 ...
- [OC笔记]@property之个人理解,大神轻拍
/** * 一个简单的对象 * * @author suzhen * */ public class SimpleObjcet { /** * 声明一个age字段 */ private Object ...
- 完美实现类似QQ的自拍头像、上传头像功能!(Demo 源码)
现在很多下载客户端程序都需要设定自己头像的功能,而设定头像一般有两种方式:使用摄像头自拍头像,或者选择一个图片的某部分区域作为自己的头像. 一.相关技术 若要实现上述的自拍头像和上传头像的功能,会碰到 ...
- 可在广域网部署运行的QQ高仿版 -- GG叽叽V3.5,增加自拍头像功能、细节优化(源码)
距离上次发版本(GG叽叽V3.4,增加系统设置.最近联系人.群功能)又有1个月了,在这个月内,由于空闲时间不是很多,所以,GG增加的主要功能只是拍照并设定其为自己头像.修改密码.删除好友.以及一些bu ...
- 高拍仪拍照SDK开发(良田影像S300L|S500L)
高拍仪拍照SDK开发下载地址:点击下载 本SDK适用于:良田影像S300L|S500L 高拍仪如图: SDN开发包安装之后找到安装目录,如图: 大家找到各自需要的版本即可,需要注意的是如果需要上传图片 ...
- ajax异步上传到又拍云的实例教程
作者:白狼 出处:www.manks.top/article/async_upload_to_upyun 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否 ...
- ACM程序对拍
有时候在OJ刷题目的时候,总是会遇到不知名bug,题目总不能AC,自己测试的一些数据又都能得出正确的结果,又或是直接暴力会TLE,改了算法,但是仍然WA,这时候进行程序对拍测试数据不失为一个好办法.程 ...
- 我的Linux对拍脚本
本文用于Linux下bash的对拍脚本: brute为本目录的暴力程序.. pro为优化过的程序 mak造数据的.. #!/bin/bash while(true)do ./mak printf &q ...
- OPPO某某產品拍攝範圍嶄露頭角
手機熱風暴再次襲來.oppo 開闢新道路.OPPO爆料N3採用旋智能轉攝像頭!很青睞一些愛拍照的我們.愛攝影的我們.覺的代攝影機麻煩.OPPo同樣給你全新的視野新加坡自由行. 隨著OPPO N3發布會 ...
- 趣拍SDK接入问题Android
Android接入趣拍问题. 大部分android开发者第一次下载SDK后,特别是导入到eclipse后,可以运行工程,但点击app中的record没反映,每次点击record按钮 会出现如下log. ...
随机推荐
- Iframe和Frame中实现cookie跨域的方法(转载)
在Iframe和Frame中默认是不支持Cookie跨域的,但通过设置P3P协议相关的响应头可以解决这一问题.关于p3p协议: P3P: Platform for Privacy Preference ...
- WPF编程,将控件所呈现的内容保存成图像的一种方法。
原文:WPF编程,将控件所呈现的内容保存成图像的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/detai ...
- C++ 对引用的深入理解
观看了唐老师讲解的一节<第5课 - 引用的本质分析>感觉非常不错,有深度不废话,我喜欢--- 再此总结下,并且奉上视频下载地址--- 360网盘下载地址: https://yunpan.c ...
- sql——inner join,where,left join的区别
1.select a.name,a.sex,a.subject,a.age from TableA a, TableB b where a.name = b.name 2.select a.name, ...
- Markdown 编辑器
桌面编辑器 MarkdownPad Pro 版注册邮箱: Soar360@live.com 授权密钥: GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGI ...
- 自制一个H5图片拖拽、裁剪插件(原生JS)
前言 如今的H5运营活动中,有很多都是让用户拍照或者上传图片,然后对照片加滤镜.加贴纸.评颜值之类的.尤其是一些拍照软件公司的运营活动几乎全部都是这样的. 博主也做过不少,为了省事就封装了一个简单的图 ...
- 按键精灵对APP自动化测试(下)
上一篇介绍了安卓app上使用按键精灵的实践,这里再来说说苹果上的app. 由于iOS相关工具对操作系统的限制,目前在iOS10.0.2系统上应用成功. 二. 苹果手机按键精灵APP录制 适 ...
- Selenium+Python自动化测试环境搭建和搭建过程遇到的问题解决
环境搭建: 第一步:安装Python 网址:https://www.python.org/ 按照如图提示安装,并且配置环境变量(安装时候选中pip会自动安装Python的包管理工具 pip,推荐选择 ...
- Alpha版本发布时间安排
Alpha版本发布截止时间:2014年11月23日 第一轮迭代M1报告时间:2014年11月27日课上 - 每个团队5分钟时间汇报,5分钟时间提问 第一轮迭代M1事后分析报告时间:2014年11月29 ...
- 小学四则运算APP 第一个冲刺 第二天
团队成员:陈淑筠.杨家安.陈曦 团队选题:小学四则运算APP 第一次冲刺阶段时间:11.17~11.27 本次程序是为了解决上次判断的问题,但是还是出现新的问题页面无法调整,需要进行改进 本次改进代码 ...