首页 > TAG信息列表 > NOIP2003
P1042 [NOIP2003 普及组] 乒乓球
题目背景 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中 1111 分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白 1111 分制和 2121 分制动态规划:P1040[NOIP2003 提高组] 加分二叉树 树形DP
P1040[NOIP2003 提高组] 加分二叉树 题目传送门:P1040 [NOIP2003 提高组] 加分二叉树 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目: 思路: 题目给的是中序遍历,所以一定是根左右,在序列中,对于每一个结点,他左边的数字可能就是他的左结点,或者左子树为空,右边的数字可能就是P1045 [NOIP2003 普及组] 麦森数
// Problem: P1045 [NOIP2003 普及组] 麦森数 // Contest: Luogu // URL: https://www.luogu.com.cn/problem/P1045 // Memory Limit: 125 MB // Time Limit: 1000 ms // User: Pannnn #include <bits/stdc++.h> using namespace std; /* 2^p与2^p-1有相同的位数,2的次方满P1045 [NOIP2003 普及组] 麦森数
题目传送门 #include <bits/stdc++.h> using namespace std; /* vector resize解析: 如果n小于当前容器的大小,则将内容减少到其前n个元素,并删除超出范围的元素(并销毁它们)。 如果n大于当前容器的大小,则通过在末尾插入所需数量的元素来扩展内容,以达到n的大小。如果指定了val,则将新元[NOIP2003 提高组]加分二叉树(区间dp)
看到题目名字:“……二叉树”,看到式子“左子树加分 \(\times\) 右子树加分 \(+\) 根节点加分”——哦,树形dp。 然而事实并非如此,注意到题目给出的是树的中序遍历,即“左儿子 \(\rightarrow\) 根 \(\rightarrow\) 右儿子”形的表示,我们发现其与区间 dp 相性更好,因为在这种遍历下,一棵洛谷[P1042] [NOIP2003 普及组] 乒乓球
题目描述 华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在 11 分制和 21 分制下,双方的比赛结果(截至记录末尾)。 比如现在有这么一份记录,(其中 W 表示华华获得一分,L 表示华华对手获得一分): WWWWWWWWWWWWWWWWWWWWWWLW 在 11 分制下,此时比赛的结果是P1042 [NOIP2003 普及组] 乒乓球 题解
_这个题其实还是需要一点乒乓球比赛的尝常识:当一方比分率先达到11分(或21分)时,只有分差大于或等于2分才会开始下一局。_ 细节处理:读到“E”时退出while,并输出当时比分;两组数据中间要把比分归零。 #include<iostream> using namespace std; char ch; bool g[1000000];//记录比分,truNOIP2003年普及组 T1 乒乓球
原文链接:这里 【题目描述】 国际乒联现在主席沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白11分制和21分P1042 [NOIP2003 普及组] 乒乓球
吐槽 最最重要的就是读懂输出分数的判断条件!!!其次重要的是明白输入的情况 获胜条件(两者中任意一个分大于等于x且两者的分差大于等于2) STLyyds #include<bits/stdc++.h> using namespace std; vector<char> a; void f(int x){ int w=0,l=0; for(int i=0;i<a.size();iP1043 [NOIP2003 普及组] 数字游戏
原题链接 考察:区间dp 这题就是一维的棋盘分割. 思路: f[i][j][k]表示将[i,j]区间分为k份得到的最大值.与棋盘分割不同的是,这道题是一维的,所以我们可以只枚举选上半边就可以枚举到所有方案.也可以枚举选下半边,但是注意这道题要预留足够的空间给进一步选择的上半边P1045 [NOIP2003 普及组] 麦森数
题目描述 形如2^P−1的素数称为麦森数,这时P一定也是个素数。但反过来不一定,即如果P是个素数,2^P−1不一定也是素数。 到1998年底,人们已找到了37个麦森数。最大的一个是P=3021377,它有909526位。麦森数有许多重要应用,它与完全数密切相关。 任务:从文件中输入P(1000<P<3100000),计算2^P−洛谷P1044 [NOIP2003 普及组] 栈(DP、卡特兰数、递推)
DP: #include <bits/stdc++.h> using namespace std; int p[20][20]; int main() { int n; cin >> n; for (int i = 0; i <= n; ++i) { p[i][0] = 1; } for (int j = 1; j <= n; ++j) { for (int i = 0; i <= n; +P1045 [NOIP2003 普及组] 麦森数
P1045 [NOIP2003 普及组] 麦森数 直接纯模拟,然后想办法优化 如果直接模拟计算那么位数太大会超时数学方法一次乘2^20次方做题的时候想到的 (貌似叫做压位) 一般来说高精度原理,是把让数组的每一位表示数的位数,所以只要第一位大于10,就直接进位 如果每一次都这样进位的话,那么时间洛谷 P1042 [NOIP2003 普及组] 乒乓球 题解 C/C++
思路如下 1.模拟打乒乓球:11分制:甲得分率先到达11分,且此时与乙的得分之差大于等于2,则甲获胜,一局结束,双方比分清零;否则继续比赛,直到双方比分只差大于等于2,得分多的一方获胜;总之就是:((甲得分>=11 || 乙得分>=11)&&abs(甲得分 – 乙得分)>=2 时一局结束,输出比分即可,同时双方比P1043 [NOIP2003 普及组] 数字游戏 题解(区间dp)
转载 :https://www.luogu.com.cn/blog/zhoushuyu/solution-p1043 题目链接 题目思路 总结一下这种类似DP题目的思路和技巧吧。 1、破环成链。没有太多的技巧性,具体而言就是把数据存储两遍,使得环形的数据可以链式展开,便于我们去DP。 但最后一定要记得扫一遍答案,取\(F[i][i+N-1]\; i:1