NOIP 2000 提高组 题解
NOIP2000 提高组 题解
No 1. 进制转换
https://www.rqnoj.cn/problem/295
水题
对于n和基数r, 每次用n mod r, 把余数按照逆序排列
注意 mod后余数必须为正
int n,r; ]={','A','B','C','D','E','F','G','H','I','J'}; int main() { ios_base::sync_with_stdio(); while(cin>>n>>r) { cout<<n; string ans=""; cout<<'='; int t=n; ) { ; x=t%r; ) x=x-r; ans=a[x]+ans; t=(t-x)/r; } cout<<ans<<'('<<"base"<<r<<')'<<endl; } ; }
No 2. 乘积最大
https://www.rqnoj.cn/problem/311
简单dp
预处理出s中的s.substr(i,j)
dp(i,j) 为前i个字符中用上k个乘号的种类数
dp[i][j]=max(dp[i][j],dp[k][j-1]*f[k+1][i]) 其中k是用于枚举最后一个乘号的位置
][]; string s; long long n,m; ][]; int main() { ios_base::sync_with_stdio(); cin>>n>>m; cin>>s; ;i<n;i++) { ; for(long long j=i;j<n;j++) { num=num*+s[j]-'; f[i+][j+]=num; } } ;i<=n;i++) { dp[i][]=f[][i]; } ;i<=n;i++) { ;j<i;j++) { for(long long k=j;k<i;k++) { dp[i][j]=max(dp[i][j],dp[k][j-]*f[k+][i]); } } } cout<<dp[n][m]<<endl; ; }
No 3.方格取数
https://www.rqnoj.cn/problem/314
简单的一个双线程dp 用贪心也可以
我感觉写两个dp好写多了
不过这样写代码短
][]= {},f[][][]= {},temp,n; void init() { int x,y; cin>>n; while(cin>>x>>y>>temp) { if(x)s[x][y]=temp; else break; } } int ty(int step,int x) { ); } int max(int a,int b,int c,int d) { int x,y; x=a>b?a:b; y=c>d?c:d; return x>y?x:y; } int main() { int i,j,k,maxn; init(); ; i<=*n-; i++) ; j<=n; j++) ; k<=n; k++) { if (j>i) continue; if (k>i) continue; ][j-][k],f[i-][j][k-],f[i-][j][k],f[i-][j-][k-])+s[j][ty(i,j)]; ][j-][k],f[i-][j][k-],f[i-][j][k],f[i-][j-][k-])+s[j][ty(i,j)]+s[k][ty(i,k)]; } cout<<f[*n-][n][n]<<endl; ; }
No 4.单词接龙
https://www.rqnoj.cn/problem/608
dfs+判断字符串能否首尾相连
判断字符串能否首尾相连用预处理也行,但我觉得没必要
dfs时记录一下长度和字符串使用次数即可
],ans; ][]; void readdata() { cin>>n; ; i<=n; i++) { cin>>s[i]; } cin>>st; ; i<=n; i++) { t[i]=; } } int check(int q,int w) { int x=strlen(s[q]),y=strlen(s[w]); ; ; i>; i--) { ok=; for(int j=i; j<x; j++) { ) continue; ok=; } ) return i; } ; } void dfs(int k,int l) { int x; ans=max(ans,l); ; i<=n; i++) { x=check(k,i); &&x>) { t[i]--; dfs(i,strlen(s[i])-strlen(s[k])+l+x); t[i]++; } } } void work() { ; i<=n; i++) { ]==st) { t[i]--; dfs(i,strlen(s[i])); t[i]++; } } cout<<ans<<endl; } int main() { readdata(); work(); ; }
The End
NOIP 2000 提高组 题解的更多相关文章
- NOIP 2014 提高组 题解
NOIP 2014 提高组 题解 No 1. 生活大爆炸版石头剪刀布 http://www.luogu.org/problem/show?pid=1328 这是道大水题,我都在想怎么会有人错了,没算法 ...
- NOIP 2001 提高组 题解
NOIP 2001 提高组 题解 No 1. 一元三次方程求解 https://vijos.org/p/1116 看见有人认真推导了求解公式,然后猥琐暴力过的同学们在一边偷笑~~~ 数据小 暴力枚举即 ...
- noip 2016 提高组题解
前几天写的那个纯属搞笑.(额,好吧,其实这个也不怎么正经) 就先说说day2吧: T1:这个东西应该叫做数论吧. 然而我一看到就照着样例在纸上推了大半天(然而还是没有看出来这东西是个杨辉三角) 然后就 ...
- NOIP 2008提高组第三题题解by rLq
啊啊啊啊啊啊今天已经星期三了吗 那么,来一波题解吧 本题地址http://www.luogu.org/problem/show?pid=1006 传纸条 题目描述 小渊和小轩是好朋友也是同班同学,他们 ...
- noip 2014 提高组初赛
noip 2014 提高组初赛 一. TCP协议属于哪一层协议( ) A. 应用层 B. 传输层 C. 网络层 D. 数据链路层 B TCP(传输控制协议) 若有变量int a; float: x, ...
- [NOIp 1998 提高组]Probelm 2 连接多位数【2011百度实习生笔试题】
/*====================================================================== [NOIp 1998 提高组]Probelm 2 连接 ...
- noip2010提高组题解
NOIP2010提高组题解 T1:机器翻译 题目大意:顺序输入n个数,有一个队列容量为m,遇到未出现元素入队,求入队次数. AC做法:直接开1000的队列模拟过程. T2:乌龟棋 题目大意:有长度为n ...
- 【NOIP2018】提高组题解
[NOIP2018]提高组题解 其实就是把写过的打个包而已 道路铺设 货币系统 赛道修建 旅行 咕咕咕 咕咕咕
- 最优贸易 NOIP 2009 提高组 第三题
题目描述 C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个 城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分 为双向通行的道路 ...
随机推荐
- Builder模式详解及其在Android开发中的应用
一.引言 在Android开发中,采用Builder模式的代码随处可见,比如说Android系统对话框AlertDialog的使用或者是Android中的通知栏(Notification)的使用,又比 ...
- js传宗接代---继承
前几天重温了一下js的继承,今天分享给大家: 一,类式继承. 所谓的类式继承就是:第二个类的原型prototype被赋予了第一个类的实例,如subcals.prototype=new supercls ...
- linux服务器查看redis版本:
linux服务器查看redis版本:redis-server-v
- PHP按值合并数组
/** * PHP按值合并数组 * */ function my_array_merge(&$array1, &$array2) { $result = Array(); foreac ...
- 【LeetCode】327. Count of Range Sum
题目: Given an integer array nums, return the number of range sums that lie in [lower, upper] inclusiv ...
- 【Android Developers Training】 27. 序言:和其它应用交互
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 关于DOM中的model(将元素转成对象进行操作)
DOM document (html, xml) object 将文档中的HTML元素转成js的对象 通过ID找到文档的元素转成js对象 var obj = document.getElementBy ...
- 【操作教程】利用YCSB测试巨杉数据库性能
一.前言 巨杉数据库(SequoiaDB)是国内第一款新一代文档型分布式数据库,巨杉数据库由巨杉软件完全自主研发,拥有完全自主知识产权,不基于任何其它的开源项目.SequoiaDB数据库是为分布式存储 ...
- Ext TabPanel tabbar添加按钮
tabPanel tabbar添加按钮 this.tabPanel = Ext.create('Ext.tab.Panel', { tabBar:{ items:[{ //组件靠右 xtype: 't ...
- JVM总结之命令行工具
jps jps位于jdk的bin目录下,其作用是显示当前系统的java进程情况,及其id号. jps相当于Solaris进程工具ps.不象"pgrep java"或"ps ...