NOIP模拟赛 四校联考 递推 + 分类讨论 + 树上期望

山西NOIp四校联考部分解题报告 D2考跪了。。。。 阅读详情

NOIP 模拟题
题目名称兔子被子蚊子
源程序文件名rabbit.cpp quilt.cpp mosquito.cpp
输入文件名rabbit.in quilt.in mosquito.in
输出文件名rabbit.out quilt.out mosquito.out
每个测试点时限1s 1s 5s
内存限制512MB 512MB 512MB
测试点数目10 10 10
每个测试点分值10 10 10
是否打开O2 优化
否否否
在windows 下用lemon 进行测试.
AK 了不要婊出题人,没AK 也不要婊出题人.

今天状态非常不好… 本来说四校联考发挥好点的, 事实上发现自己还是暴露了很多问题.

Rabbit

兔子(rabbit)
【题目描述】
做一只明媚的兔子…
兔子都比较喜欢蹦蹦跳跳.但是蹦蹦跳跳的时候如果一直往高处跳的话就太累了,如
果一直往低处跳的话就太无聊了.所以兔子希望跳的时候能够往上跳一步,往下跳一步,
往上跳一步,往下跳一步….一共经过n个高度互不相同的位置(只要向上跳和向下跳相间
分布就可以了,第一步可以往上跳也可以往下跳).如果下一个位置的高度比前一个位置
高,就是往上跳,比前一个位置低,就是往下跳.
兔子今天又蹦蹦跳跳依次经过了n 个位置.现在它想知道经过的n 个位置的高度有
多少种不同的可能.
我们认为n 个位置的高度形成了1 到n 的一个排列,这个排列要么满足奇数项的高
度比相邻位置都大, 要么满足偶数项的高度比相邻位置都大.
n=1 时,有1 种可能,就是这1 个位置的高度为1
n=2 时,有2 种可能,可以是(1,2)或(2,1)
n=3 时,有4 种可能,(1,3,2) (2,3,1),(2,1,3),(3,1,2)
答案可能很大,只需要输出答案对mod 取模的结果.
【输入格式】
一行两个整数n,mod
【输出格式】
一行一个整数ans,表示所有可能的排列数目对mod 取模后的结果.
【样例输入1】
3 1000000007
【样例输出1】
4
【数据范围】
第1,2 个测试点,5<=n<=10
第3,4 个测试点,11<=n<=13
第5,6,7 个测试点,14<=n<=16
第8,9 个测试点,100<=n<=200
第10 个测试点,n=2000
对于所有测试点,mod 在int 范围内

题解

暴力的少见使用… 本来想的是f[i][j][0/1]表示第i个位置值为j, 是升是降的方案数. 后来发现无法知道当前j在之前出没出现过, 所以就放弃打了个暴力. 算是这次唯一比较明智的选择吧. 暴力就是dfs, 然后打表过前6个点, 如果比赛一开始写快点的话能打出第7个点.

正解发现其实与原来的差不多, 用了一种很巧妙的理解方式避免了之前的方案也有j的情况. 首先奇和偶的方案数肯定是一样的, 所以我们只需要考虑其中一种计算即可. 答案乘2即可. f[i][j]表示第i个数选j的方案数, 如果当前上升的话则可从f[i-1][j - 1, j-2…]等转移过来, 下降反之. 现在考虑j在之前有没有出现过. 假设j == i那么从之前之前的转移过来肯定没问题. 假设j < i, 那么我们只需要假想成前面i-1的排列大于等于j的全部都+1, 那么当前就也是一个合法的i的排列. 所以不会出现重复的情况. 这样是n ^ 3的.
稍微改一下dp状态, f[i][j]表示第i个数选1~j的方案数, 这样f[i][j] = f[i][j-1] + f[i-1][i-j], 每次只考虑j这样就是n^2的了, 相较于之前的就是一个前缀和优化. 为什么是f[i-1][i-j]?之前是升当前就是降, 状态总是反的. 也可以说成把原来i-1的合法排列每个数取个反, 就可以迎合当前的j了.

#include<stdio.h>
typedef long long dnt;
const int maxn = 2005;
int n, mod;
dnt f[maxn][maxn];
int main(){
    freopen("rabbit.in", "r", stdin);
    freopen("rabbit.out", "w", stdout);
    scanf("%d%d", &n, &mod);
    f[1][1] = 1;
    for(int i = 2; i <= n; ++i)
        for(int j = 1; j <= i; ++j)
            f[i][j] = (f[i][j - 1] + f[i - 1][i - j]) % mod;
    printf("%I64d\n", (f[n][n] << 1) % mod);
}

Quilt

被子(quilt)
【题目描述】
作为一只明媚的兔子,需要学会叠被子…
被子是方形的,上面有很多小写字母.可以认为被子是一个n*m 的字符矩阵
被子能够被叠起来,当且仅当每一行,每一列都是回文串.
兔子可以把同一条被子上任意两个位置的字母交换位置,而且兔子不嫌麻烦,为了把
被子叠起来它愿意交换任意多次.但是兔子不能交换两条不同的被子之间的字母.
现在兔子翻箱倒柜找出来了很多被子,请你帮兔子判断每条被子能否被叠起来.
【输入格式】
第一行一个Q,表示被子的条数
接下来描述Q 条被子.
描述每条被子时,第一行输入两个整数n,m 表示由n 行m 列组成
接下来n 行每行一个长度为m 的字符串.字符串中只含小写字母.
【输出格式】
Q 行,依次输出对每条被子的判断结果.如果可以叠起来,输出一行“Yes”(不包括引
号),如果叠不起来,输出一行“No”(不包括引号).
【样例输入】
5
3 4
aabb
aabb
aacc
2 2
aa
bb
5 1
t
weet
2 5
abxba
abyba
1 1
z
【样例输出】
Yes
No
Yes
No
Yes
【数据范围】
第1,2 个测试点,n*m<=10
第3,4 个测试点,n=1
第5 个测试点,n=2
第6 个测试点,n,m 均为偶数
第7,8,9,10个测试点,捆绑测试,无特殊限制.只有通过这全部4个测试点才能拿到这4 个测试点的分数.
所有测试点,保证Q<=10,n,m<=200

题解

特判即可. 因为发现对于偶x偶的来说, 因为每行每列都要对称, 那么每个字符出现的次数都应该是4的倍数.
对于奇x偶的情况, 只有奇中间那一行可以是%4 余 2的. 因为中间那一串自己成为一个回文串即可. 当然出现奇数次数的不行. 同时余2的个数必须要<列/2(如果列为偶的话, 其他反之).
对于奇x奇的情况, 允许一个奇数出现, 拿一个作为中间那一个. 其他余2的次数不能超过(n - 1 + m - 1) / 2.

#include<stdio.h>
const int maxn = 205;
int n, m, T;
char s[maxn];
int cnt[30], mod[10];
inline bool check(){
    int num = n % 2 + m % 2;
    if(!num){
        if(mod[2] || mod[1]) return false;
        return true;
    }
    int lim;
    if(num == 1){
        if(mod[1]) return false;
        if(n & 1) lim = m / 2;
        else lim = n / 2;
        if(mod[2] <= lim) return true;
        else return false;
    }
    if(num == 2){
        if(mod[1] > 1 || !mod[1]) return false;
        if(mod[2] <= (n + m - 2) / 2) return true;
        else return false;
    }
}
int main(){
    freopen("quilt.in", "r", stdin);
    freopen("quilt.out", "w", stdout);
    scanf("%d", &T);
    while(T--){
        scanf("%d%d", &n, &m);
        for(int i = 0; i <= 4; ++i) mod[i] = 0;
        for(int i = 0; i <= 26; ++i) cnt[i] = 0;
        for(int i = 1; i <= n; ++i){
            scanf("%s", s + 1);
            for(int j = 1; j <= m; ++j)
                cnt[s[j] - 'a']++;
        }
        for(int i = 0; i <= 26; ++i){
            int mmod = cnt[i] % 4;
            if(mmod == 1) mod[1] ++; 
            if(mmod == 2) mod[2] ++;
            if(mmod == 3) mod[2] ++, mod[1] ++;
        }
        if(check()) puts("Yes");
        else puts("No");
    }
    return 0;
}
/*
5
3 4
aabb
aabb
aacc
2 2
aa
bb
5 1
t
w
e
e
t
2 5
abxba
abyba
1 1
z
*/

蚊子(mosquito)
【题目描述】
作为一只明媚的兔子,要会叠被子,又得会打蚊子…
兔子住在兔子洞里.兔子洞可以看成是一棵无根树,有n 个洞穴,有n-1 条通道连接
着n 个洞穴.
每天晚上,兔子会在1 号洞穴里缩成一团,睡一觉.同时,蚊子大军出动,去欺负兔子.
因为蚊子人多势众,所以它们分兵m*(m-1)路.m 是整个兔子洞中只和一条通道相
邻的洞穴数目.任意两个这样的洞穴a,b 之间(也就是任意两个叶子节点之间)会有两只
蚊子,一只从a 飞到b,一只从b 飞到a.它们都沿着a 到b 的最短路径移动.蚊子每秒钟可
以通过一条通道.所有蚊子都在0s 时突然出现在起点并开始移动.每只蚊子在到达终点
后的一瞬间都会突然消失.有些蚊子并不会经过兔子所在的1 号节点,它们起到的是恐吓
作用.
又一次满脸是包地醒来后,兔子忍无可忍了,于是它找到liu_runda 让liu_runda 去
打蚊子…liu_runda不知所措,于是去某宝搞了一个灭蚊器…这个灭蚊器被放在1号节点.
每个时刻,它都会工作一次,把和灭蚊器距离小于等于d 范围内的蚊子全部杀死.(d=0 时
只能控制1 号点一个位置)
遗憾的是,兔子洞尚未通电,兔子只能用爱发电. 因此,每个时刻灭蚊器只有p/q的概
率能够正常工作.如果不能正常工作,那么蚊子将不受到任何影响.
灭蚊器无法影响出现之前和消失之后的蚊子.但在蚊子出现在起点和消失在终点的
那个时刻,如果灭蚊器正常工作且蚊子在作用范围内,这只蚊子仍会被杀死.
兔子对liu_runda 的诚意表示怀疑…于是它让liu_runda 算出灭蚊器在一晚上期望
能杀死多少蚊子.liu_runda 当然会算了,但是他想考考你.
因为兔子讨厌小数,你需要输出这个期望值模109+7 后的结果.即:如果期望值可以
表示成有理数a/b(a,b 为整数),你需要输出a*b-1 mod 1000000007(109+7)的值.
(如果你算错了,就会被liu_runda 拿去喂兔子,啊呜~~)
【输入格式】
第一行一个整数n,表示兔子洞中洞穴的个数.洞穴编号为1 到n 的整数.
接下来n-1 行,每行两个整数u,v,表示u 和v 两个洞穴之间有一条通道.
接下来一行三个整数d,p,q,表示灭蚊器的作用范围是d,每个时刻工作的概率是
p/q.
【输出格式】
一行一个整数ans,表示期望模109+7 的值.
【样例输入】
3
1 2
1 3
1 1 2
【样例输出】
750000007
【样例解释】
共有2 只蚊子,一只从2 飞到3,一只从3 飞到2.灭蚊器的作用范围是1,那么
三个点都在作用范围内,每个蚊子会有三个时刻在作用范围内,那么每只蚊子生还的概率
都是1/8,经过计算,我们期望能够打死7/4 只蚊子,说明liu_runda 提供的灭蚊器是比
较靠谱的.我们输出7*4-1mod1000000007 的值750000007.
【数据范围】
记m 为叶子节点的个数.
对于第1 个测试点,n=300
对于第2,3 个测试点,n=3000
对于第4 个测试点,d=0,n=100000
对于第5 个测试点,p/q=1,n=100000
对于第6,7 个测试点n=5000000,m<=500
对于第8,9,10 个测试点,n=5000000
对于所有测点,m < n<=5000000,0<=d<=n,1<=p<=q<=109+7 保证1 号节点至少和两条通道相连.

题解

感觉是比较naive的期望, noip难度. 但是还是写错了. 存活的蚊子要好算得多, 直接最后用总的蚊子 - 期望存活的蚊子就是题目所求.
我们会发现我们只用考虑lca的贡献. 对于一个叶子节点到另一个叶子节点, 我们可以看成一个叶子节点到lca的, 和另一个到lca的, 我们称之为半路径. 这样相乘就是合法的路径, 再来算期望活着的蚊子. 我们对于每一节点用f数组来存所有这样的半路径, 那么对于u的儿子v. v到u其他子树的所有路径贡献就是(f[u] - f[v]) * f[v], 这就映射了所有路径(在dep[u]是否 小于d是要特判一下f[v]的贡献), 也就算出了所有期望存活的蚊子.
注意那个分数可以一开始就转成分子乘分母的逆元来处理.

#include<stdio.h>
const int mod  = 1e9 + 7;
const int maxn = 5e6 + 5;
typedef long long dnt;
int n, num, d, pp, qq;
int h[maxn], dep[maxn], siz[maxn];
dnt f[maxn], ans, p;
struct edge{ int nxt, v;}e[maxn * 2];
inline int read(){
    register int x = 0;
    register char ch = getchar();
    while(ch < '0' || ch > '9') ch = getchar();
    while(ch >= '0' && ch <= '9') x = (x << 3) + (x << 1) + ch - '0', ch = getchar();
    return x;
}
inline void add(int u, int v){
    e[++num].v = v, e[num].nxt = h[u], h[u] = num;
    e[++num].v = u, e[num].nxt = h[v], h[v] = num;
}
inline dnt mpow(dnt a, dnt b){
    dnt ret = 1;
    while(b){
        if(b & 1) ret = ret * a % mod;
        a = a * a % mod, b >>= 1;
    }
    return ret;
}
void dfs(int u, int fa){
    for(int i = h[u]; i; i = e[i].nxt){
        int v = e[i].v;
        if(v == fa) continue;
        dep[v] = dep[u] + 1;
        dfs(v, u);
        siz[u] += siz[v];
        f[u] = (f[u] + f[v] * p) % mod;
    }
    if(!siz[u]){
        siz[u] = 1;
        if(dep[u] <= d) f[u] = p;
        else f[u] = 1;
        return;
    }
    if(dep[u] > d) f[u] = siz[u];
    dnt delta = 0;
    for(int i = h[u]; i; i = e[i].nxt){
        int v = e[i].v;
        if(v == fa) continue;
        if(dep[u] <= d) delta = f[u] - f[v] * p;
        else delta = f[u] - f[v];
        delta = (delta % mod + mod) % mod;
        ans = (ans + delta * f[v] % mod) % mod;
    }
}
int main(){
    freopen("mosquito.in", "r", stdin);
    freopen("mosquito.out", "w", stdout);
    n = read();
    int u, v;
    for(int i = 1; i < n; ++i){
        u = read(), v = read();
        add(u, v);
    }
    d = read(), pp = read(), qq = read();
    p = 1ll * (qq - pp) * mpow(qq, mod - 2) % mod;
    dfs(1, 1);
    ans = (1ll * siz[1] * (siz[1] - 1) % mod - ans + mod) % mod;
    printf("%I64d\n", ans);
    return 0;
}
【PyTorch版本兼容性指南】如何在不同版本中正确使用torch.nn.attention 本文详细解析了PyTorch版本兼容性问题,特别是torch.nn.attention模块在不同版本中的使用差异。针对常见的ModuleNotFoundError错误,提供了三种实用解决方案:升级PyTorch版本、使用自定义实现和源码移植方案,并分享了最佳实践建议,帮助开发者有效避免兼容性问题。 阅读详情

相关推荐

C语言实验——各位数字之和排序

C语言实验——各位数字之和排序Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description给定n个正整数,根据各位数字之和从小到大进行排序。 Input输入数据有多组,每组数据占一行,每行的第一个数正整数n,表示整数个数,后面...

aiLMengi000的博客 1240

NOIP2018三校联考--电压机制(voltage)

很容易发现与奇环和偶环有关,但是仔细想清楚和怎么用程序实现还是很难的 但是我们dfs一边后,会发现能形成环的边都变成了返祖边 而且这些返祖边对于答案大部分情况下都没有贡献 偶环上的边都不能做出贡献,当且仅当一条边被所有奇环包含时才能做出贡献 有两个性质如下: 性质1:如果有超过两个奇环,则所有非树边都没有贡献,否则有1的贡献 性质2:两...

weixin_30448685的博客 171

Java后端实战:钉钉互动卡片消息从配置到生产级对接

在企业级消息推送场景中,机器人通知已从简单的文本向富交互演进。其核心原理在于通过可交互的卡片模板,将传统单向通知升级为双向、有状态的微型应用界面,实现了用户无需跳转即可完成操作的技术价值。这广泛应用于审批、任务确认、数据填报等需要即时反馈的业务流程。本文聚焦于钉钉平台,深入剖析其互动卡片消息机制,并基于Java后端,系统讲解如何实现包括安全验签、异步回调与卡片动态更新在内的生产级对接方案,涵盖配置管理、服务降级等工程实践关键点,助力构建稳定高效的企业消息交互服务。

weixin_30617737的博客 435

October 15th 模拟赛A T2 NOIP2018五校联考 黑暗之魂 Solution

题目空降 Description oi_juruo热爱一款名叫黑暗之魂的游戏。在这个游戏中玩家要操纵一名有 点生命值的无火的余灰在一张地图中探险。地图中有n个篝火(也就是存档点)。在篝火处休息可以将生命值恢复满。每个篝火都会向其他篝火的其中之一连有一条通道(显然,通道是双向的),这些篝火之间都相互可达。也就是说,这是一张n个点,n条边的无向连通图。每条通道里都有一些怪物,经过oi_juruo的分析...

打工是不可能打工的,这辈子不可能打工的。 469

【DDSCAT——离散偶极近似仿真程序04】参数理解和模型设计

在这一部分,我们开始理解DDSCAT程序设计中的一些参数问题。 承接第二部分内容中的ddscat.par文件,我们来聊一聊偶极子、实际体积、有效半径等关键词。 一、偶极子点阵 手册中说,我们需要设计模型(target/目标),它是有偶极子点阵组成的。偶极子,顾名思义,是由一对电荷组成的,但我们不用设计一对,我们设计一个点就行,...

XD_Yangf的博客 7552

突破NER性能瓶颈:BERT与LLM协同的混合架构实践

性能卓越:在多个测试集上,F1分数比单一模型提升5-15%成本可控:相比纯LLM方案,成本降低60%以上易于落地:架构清晰,便于调试和优化这种"专才+通才"的组合思路可以扩展到其他NLP任务中,如关系抽取、事件提取、文本分类等。更精细的流水线优化多模型投票机制在线学习与自适应调整不追求单一模型的万能,而是通过精心设计的组合,让每个组件发挥其独特优势,最终实现系统性能的最优化。欢迎在评论区分享你在NER任务中的实践经验,或者对这个混合架构的改进建议!

Ven%的博客 1022

与dalao学校的联hu测zuo(10.26)

T1.兔子(rabbit)【题目描述】 做一只明媚的兔子… 兔子都比较喜欢蹦蹦跳跳.但是蹦蹦跳跳的时候如果一直往高处跳的话就太累了,如果一直往低处跳的话就太无聊了.所以兔子希望跳的时候能够往上跳一步,往下跳一步,往上跳一步,往下跳一步….一共经过n个高度互不相同的位置(只要向上跳和向下跳相间分布就可以了,第一步可以往上跳也可以往下跳).如果下一个位置的高度比前一个位置高,就是往上跳,比前一个位置

Coco_T的博客 827

【Linux内核】Linux内核裁剪完全指南:从理论到实战的系统优化

在嵌入式设备、专用服务器和物联网系统日益普及的今天,如何让Linux系统在资源受限的环境中高效运行成为开发者必须面对的问题。Linux内核裁剪正是解决这一问题的关键技术,它通过移除不必要的内核组件,打造出更精简、更安全、更高效的自定义操作系统。本文将系统全面地介绍Linux内核裁剪的完整流程和实用技巧,帮助您掌握这一核心技能。Linux内核裁剪是一项结合技术知识与实践经验的系统工程。明确需求:裁剪前必须清晰了解目标系统的硬件配置和功能需求。循序渐进:采取小步修改、反复测试的策略,避免一次性大幅修改。

撬动未来的支点的专栏 1385

10.26 T3.蚊子(mosquito) (树形dp)

【题目描述】 作为一只明媚的兔子,要会叠被子,又得会打蚊子… 兔子住在兔子洞里.兔子洞可以看成是一棵无根树,有n个洞穴,有n-1条通道连接着n个洞穴. 每天晚上,兔子会在1号洞穴里缩成一团,睡一觉.同时,蚊子大军出动,去欺负兔子. 因为蚊子人多势众,所以它们分兵m*(m-1)路.m是整个兔子洞中只和一条通道相邻的洞穴数目.任意两个这样的洞穴a,b之间(也就是任意两个叶

Coco_T的博客 956

统信UOS/麒麟Kylin OS下利用pyenv实现Python多版本开发环境搭建指南

本文详细介绍了在统信UOS和麒麟Kylin OS国产操作系统下使用pyenv搭建Python多版本开发环境的完整指南。从系统环境准备、pyenv定制安装到Python版本编译实战,提供了针对国产CPU架构的特殊优化方案和常见问题解决方法,帮助开发者高效管理不同Python版本需求。

sea99的博客 1050

DLMS/COSEM协议的理解体会

DLMS是通信协议,COSEM是电表建模规范。HDLC帧基本格式为0x7e......

一个bug是bug,多个bug能work 8311

[SinGuLaRiTy] NOIP模拟题 by liu_runda

【SinGuLaRiTy-1046】 Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 题目名称 兔子 被子 蚊子 源程序文件名 rabbit.cpp quilt.cpp mosquito.cpp 每个测试点时限 1...

weixin_34344677的博客 209

GEE数据融合——Landsat (collection 2,level 2 )4、5、7、8、9长时间序列影像数据融合和视频导出分析

长时间序列影像数据融合是指将Landsat影像数据集合2级2(Level 2)中的4、5、7、8和9这五个卫星的数据进行融合。具体来说,这包括将同一地点的多个卫星影像数据进行处理和整合,以产生一个单一的、具有更高质量的影像产品。在长时间序列影像数据融合中,首先需要对不同卫星的影像数据进行校正,以消除不同卫星之间的光谱差异、辐射度问题和几何纠正误差等。然后,通过使用融合算法,将多个卫星的影像数据进行组合,以生成一张全新的、高质量的合成影像。

此星光明博客 1733

[BZOJ 1925][SDOI 2010] 地精部落 DP/递推

题目传送门:【BZOJ 1925】题目大意: 我们认为 n 个位置的高度形成了 1 到 n 的一个排列,这个排列要么满足奇数项的高度比相邻位置都大,要么满足偶数项的高度比相邻位置都大(即:一高一低型)。给定 n,求出符合条件的排列数对 P 取模的值。(3 ≤ n ≤ 4200,P ≤ 109^9)题目分析:这道题是我认为非常好的题了,它的解题关键就在于想到 DP/递推转移方程式。如题,看到这道题,我

江澤妮可 554

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

做软件构架的时候,一定要选熟悉的有把握的技术,任何新技术的尝试都有可能有巨大的风险,可能造成项目太大,太复杂,做不下去!

 

coolku的专栏 441

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

9.24 NOIP模拟题(By liu_runda)

话说衡水出的题怎么名不副其实啊… 一点都不水, 可能是因为达哥太强的原因, 毕竟河北rank1啊… 想当初东北集训的时候找他问题也很热心, 不过题就太不友善了…         虽然这次的题确实比较水…简(simple) 【题目描述】 大道至简.这就是出题人没有写题目背景的原因. 给出2n个数字,将它们划分成n组,每组的得分为这一组中两个数字的较小值. 求最大得分. 【输入格式】 第

Le Petit Prince 1539

【JZOJ5068】【GDSOI2017第二轮模拟】树

Description有n个点,它们从1到n进行标号,第i个点的限制为度数不能超过A[i]. 现在对于每个s (1 <= s <= n),问从这n个点中选出一些点组成大小为s的有标号无根树的方案数。Data Constraint20%的数据:n <= 6 60%的数据:n <= 50 100%的数据:n <= 100Solution这道题是一道带标号的无根树计数,我们考虑prufer序列。

dance in th dark的博客 701

noip 2018 模拟赛4

T1T_1T1​——coci(1737) Description: 在三场考试中,有nnn为选手,现在已知每位选手的第一场和第二场的分数,并且知道若选手AAA的第一场和第二场的分数都严格大于选手BBB,则AAA的第三场的分数一定大于BBB,以及每场的分数为0~650。求每位选手最后总分的最高排名和最低排名。 n≤500000n\le50 0000n≤500000 Solution: 模拟小数据,...

Caristra的博客 365

一起来数兔子

[1053] 一起来数兔子 时间限制: 1000 ms 内存限制: 65535 K 问题描述 有一只兔子,它每年生一头小兔。每头小兔从第四个年头开始,每年生一头小兔。请你计算第n年是共有多少只兔子(第一年是有一头兔子) 输入 输入多组测试数据,每组测试数据占一行,输入一个整数n(0 输出 每组输出数据占一行,输出第在第n年的时候兔子的数量。 样例

…… 804

2018.08.18 NOIP模拟 travel(贪心)

Travel 题目背景 SOURCE:NOIP2015-SHY4 题目描述 小 A 要进行一次旅行。这回他要在序号为 1 到 n 的 n 个城市之间旅行。这 n 个城市之间共有 m 条连接两个城市的单行公路,对于第 i 条公路的风景有一个评分 ai。小 A 有一个要求:挑选旅行路线时经过某条路时看到的风景比上一条经过的公路的风景评分更高。小 A 想看到尽可能多的风景,请你告诉他他能找到的最...

苟为蒟蒻又何妨 452

如果累了

 如果累了,放下笔杆,和爷爷闲话那些几近尘封了的故事:如果累了,大哭一场,再用忙碌来充斥几乎麻木了的心灵:如果累了,闭目仰卧,回忆那曾有过的夏日的夜色~~人的一生就像一棵树,无情的狂风将球叶扫落,但光秃的树干依然暴露于外,日晒雨淋,可树木却一直好好的活着,它总有调节自身之法.时间会修复所有的创伤,啄木鸟会诊治它的疾病,泥土会滋润它绵密的根系.它需要这些,正如人渴求爱情,亲情,友情一般.它不累,

anti20091010的专栏 341

【NOIP2016提高A组五校联考1】排队

Description给出一棵n个节点以1为根的树,和m次操作。 每次操作把x个人扔进这棵树。 每个人会选择当前节点中一个没有人且编号最大的节点走过去。 问最后一个人停在哪个节点。 或者把x这个节点的人删除,把它上面的所有人往下移一格,问移动了多少人。 n,m<=10^5Solution你有木有觉得这个走的方法很像dfs序的遍历? 那么我们可以构造出这个特殊的dfs序,不过每次我们选择编

时光真疯狂, 我一路执迷于匆忙. 930

BJ模拟 Different Trips【树上后缀数组】

题目描述: CJB来到HZ王国旅游。HZ王国给CJB留下了深刻的印象,特别是HZ王国的道路系统。HZ王国有N个城市,编号从1到N。其中,城市1为HZ王国的首都。这N个城市由N-1条无向道路来连接。虽然只有这么少路,但任意两个城市都可以互相到达。 每个城市都有一座标志性的建筑(比如广州塔、东方明珠),站在上面可以看到这座城市有多少条道路与它连接。如果与城市A连接的道路数量等于与城市B连接的道路数...

cdsszjj的博客 776

NOIP2017模拟 玩游戏 最小生成树 树上倍增

NOIP2017模拟 玩游戏题目大意 给出一个n个节点m条边的无向连通图,定义两点间最短路径的长度为所有路径中最长边权值的最小值。现在有一些加边操作和询问操作,共计q次。询问操作是要求判断两组点对间的最短距离是否相等(原题中以最基本的Nim游戏的形式给出)。 数据范围 对于90%的数据,n<=5000,m<=100000,q<=150000,边权<=1e15,加边操作不超过1000次。

rgnoH的博客 693

【树的个数+容斥】2017.10.23杂题(liu_runda NOIP 联考 DAY1)[任]题解

题目概述呵呵,题目概述写到一半电脑重启了,没心情写了。liu_rundaNOIP 联考 DAY1 T2。解题报告没有多条简单路径就是树喽……那么这道题就是让你求一个子矩阵中树的个数。然后有个很显然的结论:森林中树的个数 == 节点数 −- 边数。于是容斥就行了。示例程序#include<cstdio> using namespace std; const int maxn=2000,maxm=200

ZigZagK的博客 587

NBUT 1619 - 递增数字(数位DP)

[1619] 递增数字 时间限制: 1000 ms 内存限制: 65535 K 问题描述 我们把数字的高位到低位逐渐变大的数字叫作递增数字,形如0,12344,35799。现在给出区间L和R,请你计算L到R内递增数字的个数。因为个数比较多,将答案输出mod (1e9+7)后输出。 输入 多组输入,每组输入两个数,分别代表L和R。 数据范围:0 输出 每组输出

Mr_Treeeee的博客 752
上一篇: [BZOJ]1150 1150: [CTSC2007]数据备份Backup 贪心 + 堆
下一篇: [BZOJ]1426 收集邮票 概率与期望
MaxMercer
博客等级 码龄10年 55粉丝 261原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值