[题解+总结]NOIP2015模拟题2
// 此博文为迁移而来,写于2015年7月22日,不代表本人现在的观点与看法。原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w72i.html



【P.S 标题有误,特此提醒】
一道动态规划题目,核心在于对于多边形的每一个顶点进行编号,根据n边形由n-2个三角形组成的原理,可以设计出状态。
#include cstdio
#include cstring
#define MOD 100000
#define INF 1<<30
long long n;
{
for (int i=1;i<=c[0];i++)
{
c[i+1]+=c[i]/MOD;
c[i]%=MOD;
}
while (c[c[0]+1])
{
c[0]++;
c[c[0]+1]+=c[c[0]]/MOD;
c[c[0]]%=MOD;
}
}
{
memset(s,0,sizeof(s));
s[0]=s[1]=1;
for (int i=1;i<=s[0];i++) s[i]*=a1; mark(s);
for (int i=1;i<=s[0];i++) s[i]*=a2; mark(s);
for (int i=1;i<=s[0];i++) s[i]*=a3; mark(s);
}
{
memset(c,0,sizeof(c));
c[0]=max(a[0],b[0]);
for (int i=1;i<=c[0];i++) c[i]=a[i]+b[i];
mark(c);
}
{
if (a[0]<b[0]) return 0;
if (a[0]>b[0]) return 1;
for (int i=a[0];i>=1;i--)
if (a[i]
else if (a[i]>b[i]) return 1;
return 0;
}
{
freopen("polygon.in","r",stdin);
freopen("polygon.out","w",stdout);
scanf("%I64d",&n);
for (int i=1;i<=n;i++) scanf("%I64d",&a[i]);
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++) f[i][j][0]=1;
for (int i=n-2;i>=1;i--)
for (int j=i+2;j<=n;j++)
{
f[i][j][0]=INF;
for (int k=i+1;k<=j-1;k++)
{
multi(a[i],a[k],a[j],s1);
addVal(f[i][k],f[k][j],s2);
addVal(s1,s2,s3);
if (check(f[i][j],s3)) memcpy(f[i][j],s3,sizeof(f[i][j]));
}
}
printf("%I64d",f[1][n][f[1][n][0]]);
for (int i=f[1][n][0]-1;i>=1;i--) printf("I64d",f[1][n][i]);
printf("\n");
}

这道题是比较简单的完全背包问题了,但是由于考试时候匆匆忙忙,写萎了,结果只得了10分。含有一个值得注意的地方,读入的时候,对于每一个零件,题目中并没有给出他的备用零件个数选择有多少种方式,所以需要在读入时判断回车符。

暴力大法好!有人打了个暴力就A了真是不能忍。。。我开始想过这种做法,但是看到数据范围后就弃疗了,然而并不清楚为什么可以A了。先说说暴力的做法吧:对于每一个字母数字组合,记录其曾经出现过的位置,依次进行比较,得到重复串后判断是否相连即可。正解的话是江哥跟我们讲的,可以巧妙利用KMP算法的fail指针。

[题解+总结]NOIP2015模拟题2的更多相关文章
- [考试]NOIP2015模拟题2
// 此博文为迁移而来,写于2015年7月22日,不代表本人现在的观点与看法.原始地址:http://blog.sina.com.cn/s/blog_6022c4720102w72i.html 1.总 ...
- 【题解】[NOIP模拟题]我要的幸福-C++
题目Description我要的幸福(happiness)幸福/我要的幸福/渐渐清楚/梦想/理想/幻想/狂想/妄想/我只想坚持每一步/该走的方向/就算一路上/偶尔会沮丧/生活是自己/选择的衣裳/幸福/ ...
- csu 1312 榜单(模拟题)
http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1312 1312: 榜单 Time Limit: 1 Sec Memory Limit: 128 ...
- 【NOIP2015模拟11.4】JZOJ8月6日提高组T1 刷题计划
[NOIP2015模拟11.4]JZOJ8月6日提高组T1 刷题计划 题目 题解 题意 有\(n\)道题,编号为1~\(n\) 给出\(m\)次操作 每次操作有3种类型 1 \(x\) 表示交了\(A ...
- 《ACM国际大学生程序设计竞赛题解Ⅰ》——模拟题
这篇文章来介绍一些模拟题,即一类按照题目要求将现实的操作转换成程序语言. zoj1003: On every June 1st, the Children's Day, there will be a ...
- PAT甲级 模拟题_C++题解
模拟题 PAT (Advanced Level) Practice 模拟题 目录 1008 Elevator (20) 1042 Shuffling Machine (20) 1046 Shortes ...
- 【题解】NOIP2015提高组 复赛
[题解]NOIP2015提高组 复赛 传送门: 神奇的幻方 \([P2615]\) 信息传递 \([P2661]\) 斗地主 \([P2668]\) 跳石头 \([P2678]\) 子串 \([P26 ...
- JZOJ 4298. 【NOIP2015模拟11.2晚】我的天
4298. [NOIP2015模拟11.2晚]我的天 (File IO): input:ohmygod.in output:ohmygod.out Time Limits: 1000 ms Memor ...
- 【NOIP2015模拟11.5】JZOJ8月5日提高组T2 Lucas的数列
[NOIP2015模拟11.5]JZOJ8月5日提高组T2 Lucas的数列 题目 PS:\(n*n*T*T<=10^{18}\)而不是\(10^1*8\) 题解 题意: 给出\(n\)个元素的 ...
随机推荐
- Spring.Net的IOC入门
1.构造器注入 namespace Spring.Net { class Program { //构造器注入 static void Main(string[] args) { IApplicatio ...
- 如何做好App的引导页?(转)
http://uedc.163.com/12264.html 当你第一次打开一款应用的时候常常会看到精美的引导页设计,它们在你未使用产品之前提前告知你产品的主要功能与特点,第一次印象的好坏会极大地影响 ...
- jQuery ajax同步的替换方法,使用 $.Deferred()对象
function aa() { var defer = $.Deferred(); $.ajax({ url: "/Handler1.ashx", type: "post ...
- Linux Shell 高级编程技巧4----几个常用的shell脚本例子
4.几个常用的shell脚本例子 4.0.在写脚本(同样适用在编程的时候),最好写好完善的注释 4.1.kill_processes.sh(一个杀死进程的脚本) #!/bin/bash c ...
- 【转载】Python编写简易木马程序
转载来自: http://drops.wooyun.org/papers/4751?utm_source=tuicool 使用Python编写一个具有键盘记录.截屏以及通信功能的简易木马. 首先准备好 ...
- Win10 for Phone 裁剪控件
<Page.BottomAppBar> <CommandBar x:Name="appBar"> <AppBarButton Label=" ...
- hdu 4026 2011上海赛区网络赛F TSP ****
没看过TSP,先mark //4838039 2011-10-27 23:04:15 Accepted 4026 2343MS 31044K 3143 B C++ Geners //状态压缩DP的TS ...
- ServerSocket 默认邦定IP
转自:http://cuisuqiang.iteye.com/blog/2037769 开发中需要开启服务端的时候,本地测试都是直接写端口,实际环境也是需要指定要邦定的IP才可以. 因为对于服务器来说 ...
- MOS X 下Apache服务器配置,及日志读取
A01-配置Apache 在当前用户的目录创建一个文件夹 打开finder进入/etc/apache2/etc/apache2 是系统目录,默认不显示 进入该目录有两种方法 i. 显示所有隐藏和系统目 ...
- Oracle注入漏洞
sqlmap.py -u "http://10.7.82.123:9104/servlet/json" --cookie="JSESSIONID=abcgk26KDf_5 ...