【日常学习】【搜索递推和其他】10.21.2015校内测试总结
来源:互联网 发布:mac mobi转pdf软件 编辑:程序博客网 时间:2024/04/30 08:16
哭瞎了···昨天夜里写了一半多的博客因为卡机就这么没了TUT今天重新写,浪费我多少时间TUT
第一题 RQNOJ358 线段
画个图就知道是两点间距离的二倍···(我太傻竟没看出来)
但是!这是小圆圆心在大圆外的情况,如果在大圆内部,画图可知正解是大圆直径
然而···出题人竟然没发现这一点于是只用了第一种解法没加特判···
所以说蠢萌的出题人···
代码
标准解(OJAC)
正解第二题 循环 NOIP2005PJ4
谁说PJ能AK的···
这是一个递推题,要写高精。
如果暴搜,乘幂上限到五百多能拿三十分···
但也只能三十分,因为其他点答案都是十的几十次方···
暴搜程序
(幸亏我点了保存可恶的CSDN写到第二题又给我卡死了!!!可恶!!!)
(就在我说这句话后当我粘上代码第三次卡死了)
//circle//copyright by ametake//思路 从基数开始一个个尝试基数的倍数 第一次快速幂 之后高精乘即可 每次检验#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;const int sx=600; const int maxn=100+10;//const int power=1;const int base=10;const int jishu[10]={1,1,4,4,2,1,1,4,4,2};int a[maxn],ans[maxn],c[maxn];char cc[maxn];int now[maxn],jj[maxn];int k;void multi(int *aa,int *b){ memset(c,0,sizeof(c)); int len1=aa[0]; int len2=b[0]; c[0]=min(100,aa[0]+b[0]-1); for (int i=1;i<=len1;i++) { for (int j=1;j<=min(len2+i-1,100-i+1);j++) { c[i+j-1]+=aa[i]*b[j]; c[i+j]+=c[i+j-1]/base; c[i+j-1]%=base; } } if (c[c[0]+1]) if (c[0]<100) c[0]++; memcpy(aa,c,sizeof(c));}bool check(){ memcpy(ans,now,sizeof(now)); multi(ans,a); bool noo=false; for (int i=1;i<=k;i++) if (ans[i]!=a[i]) noo=true; if (noo) return false; else return true;}int main(){ //freopen("1.txt","r",stdin); //freopen("2.txt","w",stdout); freopen("circle.in","r",stdin); freopen("circle.out","w",stdout); scanf("%s",cc); scanf("%d",&k); int p=0;//p是基数,a是最原始数组,now是当前数组,由a求幂而来且指数一定为基数的倍数,ans是检验时用的要再乘一遍a now[0]=k; a[0]=k; if (k>strlen(cc)) { printf("-1\n"); return 0; } for (int i=strlen(cc);i>=1;i--) { a[++p]=cc[i-1]-'0'; now[p]=cc[i-1]-'0'; if (p==k) break; } p=jishu[now[1]];//从此a不动 if (p>1) multi(now,now); if (p==4) multi(now,now); memcpy(jj,now,sizeof(now));//jj是基底数组 每次乘它 if (check()) { printf("%d\n",p); return 0; } else { for (int i=2;i<=sx/p;i++) { multi(now,jj); if (check()) { printf("%d\n",p*i); return 0; } } } printf("-1\n"); return 0;}
这道题正解至今不明白为什么是十次,只是知道每次对于某一位向前递推最后求乘积···这个大家自己去网上搜吧
第三题 altitude
没找到原题,反正也无所谓
直接暴力枚举可过
也可以用DP做,但时间复杂度更大,因为DP球了所有的状态
参见显摆代码 这里不放了
第四题 sudoku
近似于codevs数独挑战 其实只是读入方式变了而已
暴搜即可 一道典型的棋盘暴搜题 和八皇后一样的判断 其实可以参见靶形数独 我感觉我几乎是比着黄学长靶形数独写的
总结:思维能力和代码实现能力仍需增强 基础部分尤其是深广搜还要再练 算法还应该更扎实 加油啊
——连重阳节都过去了
——雾霾天,外面灰蒙蒙的一片,好像要下雨一样
——江涵秋影雁初飞,与客携壶上翠微
1 0
- 【日常学习】【搜索递推和其他】10.21.2015校内测试总结
- 【日常学习】【模拟,树形DP-非递归!和拆点最短路】10.26.2015校内测试总结
- 【基础练习】【单调队列和其他】10.19.2015校内测试总结
- taobao日常和项目测试流程总结
- [校内模拟]One(递推)
- 日常学习总结
- 日常学习总结
- 日常学习总结
- 日常软件测试工具总结
- 【日常学习】【高精】【数学递推】tyvj1375 山洞历险题解
- POJ1088 滑雪 经典DP 记忆化搜索和递推
- 学习Android studio 日常总结
- 工作日常--es6学习总结
- 10.21日常总结
- 【学习总结】其他
- 【日常学习】【数学-其他】洛谷1403 约数研究题解
- 【日常学习】【其他算法】codevs3371 刮油漆题解
- 递推总结
- VLC简介及使用说明
- 【codevs2488】绿豆蛙的归宿 动态规划+拓扑排序
- meshgrid,contour,surf,mesh的总结
- Android之ListView实现下拉刷新
- 浅谈HTTP中Get与Post的区别
- 【日常学习】【搜索递推和其他】10.21.2015校内测试总结
- 使用python对url编码解码
- O(N)时间复杂度、O(1)空间复杂度 构造数组
- Java中生成的UUID(全局唯一标识符-----(唯一)-------)
- JavaScript的作用域
- 【笨木头Unity】入门之旅002:不谈对象,咱们谈组件
- 【笨木头Unity】入门之旅003:HelloWorld
- 各种排序算法的分析及java实现
- 海南去旅游