吉林省信息学奥赛 2017 冬令营
                                                                                                                                                                                                      day2

嗯 今天题目好水

嗯 今天爆零了好伤心......

值得纪念。

三道题读错了两道,T3瞎贪心只过了样例。

这就NOIP了,长点心吧。

OIER 密码

【问题描述】
吉林省的 OIER 们保密意识很强,总是将信息加密。
有一个仅含小写字母的字符串,我们把它按如下方法加密:
步骤 1:把所有连续的相同字母都用一个字母代替。比如 aaabbbb 被替换为
ab。
步骤 2:在随机的位置插入两个相同的小写字母。重复 步骤 2 很多次。
下面是一个加密的实例
初始字符串 jjjlloooiieerr
执行步骤 1 之后变成 jloier
插入 aa 之后变成 jloiaaer
插入 bb 之后变成 jloiabbaer
插入 ll 之后变成 jllloiabbaer
现在我们给定加密后的字符串,求执行 步骤 1 之后的字符串是什么。
【输入格式】
从文件 password.in 中输入数据。
一个字符串,表示加密后的字符串。
【输出格式】
输出到文件 password.out 中。
一个字符串,表示执行 步骤 1 之后的字符串。
【样例输入】
jllloiabbaer
【样例输出】
jloier
【数据规模与约定】
对于 30%数据, 加密后的字符串的长度<=1000
对于 70%数据, 加密后的字符串的长度<=100000
对于 100%数据, 加密后的字符串的长度<=1000000

/*
话说这个题确实没问题? 如果加密后的字符串是aaaabcdefgaaaa
std给出的结果是bcdefg但如果第一次加密完是abcdefga然后第二次加密恰好都是在首尾加了a呢?
是不是也可以...因为第一步消除的是连续的相同字母. abcdefga中a并不连续啊。那为何输出bcdefg? 思想还是很好的,类似括号匹配 用栈实现。
下面粘出std
*/
#include <cstdio>
#include <cstring>
#include <iostream>
#include <stack>
#include <vector>
#include <algorithm>
using namespace std;
int a[];
char s[], in[];
bool cant[];
int n;
vector<char> ans;
stack<char> S;
int main()
{
// freopen("password.in", "r", stdin);
//freopen("password.out", "w", stdout); gets(s + ); n = strlen(s + );
for (int i = ; i <= n; i++)
if (S.size() && S.top() == s[i])
S.pop();
else S.push(s[i]);
while(S.size()) ans.push_back(S.top()), S.pop();
reverse(ans.begin(), ans.end());
for (int i = ; i < (int)ans.size(); i++) putchar(ans[i]); }

投资

【问题描述】
吉林省的 OIER 们投资了一支股票,大家都知道股票有赚有赔,现给出 n 天
里这支股票的涨跌情况,都为整数,涨为正,跌为负。OIER 们想知道天数在 s
到 e 之间的这只股票涨跌的最大连续和 。
【输入格式】
从文件 invest.in 中输入数据。
第一行有三个正整数 n、s 和 e ,同上描述。
接下来有 n 行,每行一个整数 ai,组成数列,数列的顺序不可以变换。
【输出格式】
输出到文件 invest.out 中。
输出长度在 s 和 e 之间连续的数列数的和的最大值。
【样例输入】
6 2 4
4
-3
9
12
-8
9
【样例输出】
22
【数据规模与约定】
对于 30%数据,1<=s<=e<=n<=100
对于 100%数据,1<=s<=e<=n<=100000
对于 100%数据,-10000<=ai<=10000

/*
单调队列...可惜我并没有读懂题目,用线段树写了0分 题意是让着求长度为 l~r 的最大子段和
首先可以从l开始枚举i,i-l就是右端点,i-r就是左端点 答案就是 Max(sum[i]-min(sum[x])) (l<=x<=y)
用单调队列维护min(sum[x])
*/
#include<cstdio>
#include<cstring>
#include<queue>
#include<algorithm>
using namespace std;
int n,x,y;
int q[];
int sum[];
int f[];
int l=,r;
int ans=-;
int main()
{
freopen("invest.in","r",stdin);
freopen("invest.out","w",stdout);
scanf("%d%d%d",&n,&x,&y);
for(int i=;i<=n;i++)
{
int tmp;
scanf("%d",&tmp);
sum[i]=sum[i-]+tmp;
}
for(int i=x;i<=n;i++)
{
while(l<=r&&sum[q[r]]>=sum[i-x])r--;
q[++r]=i-x;
while(l<=r&&q[l]<i-y)l++; //q[l]是枚举的区间起点,i-y是左端点 不在范围内 l++
f[i]=sum[i]-sum[q[l]];
ans=max(ans,f[i]);
}
printf("%d",ans);
fclose(stdin);
fclose(stdout);
return ;
}

学习 计划

【问题描述】
吉林省 OIER 们都是爱学习的同学,所以他们想学习更多的课程。长春市教
育局开设了“云课程”网络学习平台,一共有 n 门课程,但这个平台有个弊端,就
是每门课程在时间 Ti 之后将不再开放,并且每门课程要想学会需要 Ci 的时间,
聪明的你帮助吉林省 OIER 们计划一下,使他们能够学习最多的课程。
【输入格式】
从文件 plan.in 中输入数据。
第一行,一个整数 n
下面 n 行,每行两个数 Ti 和 Ci
【输出格式】
输出到文件 plan.out 中。
一行 一个整数,完成的最多任务数。
【样例输入】
4
5 1
3 2
7 6
1 1
【样例输出】
3
【数据规模与约定】
对于 30%数据,n<=100
对于 100%数据,n<=100000

/*
因为有每个都有时间限制,所以容易想到按时间限制先排个序
然后模拟,并且维护一个优先队列记录加入元素的使用时间
如果当前使用时间总和大于下一个的开放时间,就弹出对首
用队首和当前的所需时间作比较,更新答案并加入更小的那个。
*/
#include<iostream>
#include<queue>
#include<cstdio>
#include<algorithm> #define N 100001 using namespace std;
priority_queue<int>q;
int n,s,ans;
struct node
{
int Ti,ci;
}a[N]; bool cmp(node x,node y)
{
return x.Ti<y.Ti;
} int main()
{
freopen("plan.in","r",stdin);
freopen("plan.out","w",stdout);
scanf("%d",&n);
for(int i=;i<=n;i++)
scanf("%d%d",&a[i].Ti,&a[i].ci);
sort(a+,a+n+,cmp);
for(int i=;i<=n;i++)
{
if(a[i].ci>a[i].Ti) continue;
if(s+a[i].ci<=a[i].Ti)
{
ans++;
s+=a[i].ci;
q.push(a[i].ci);
}
else if(a[i].ci<q.top())
{
s-=q.top();s+=a[i].ci;
q.pop();q.push(a[i].ci);
}
}
printf("%d\n",ans);
return ;
}

9.22 NOIP模拟题的更多相关文章

  1. 8.22 NOIP 模拟题

      8.22 NOIP 模拟题 编译命令 g++ -o * *.cpp gcc -o * *.c fpc *.pas 编译器版本 g++/gcc fpc 评测环境 位 Linux, .3GHZ CPU ...

  2. 【入门OJ】2003: [Noip模拟题]寻找羔羊

    这里可以复制样例: 样例输入: agnusbgnus 样例输出: 6 这里是链接:[入门OJ]2003: [Noip模拟题]寻找羔羊 这里是题解: 题目是求子串个数,且要求简单去重. 对于一个例子(a ...

  3. NOIP模拟题汇总(加厚版)

    \(NOIP\)模拟题汇总(加厚版) T1 string 描述 有一个仅由 '0' 和 '1' 组成的字符串 \(A\),可以对其执行下列两个操作: 删除 \(A\)中的第一个字符: 若 \(A\)中 ...

  4. 9.9 NOIP模拟题

    9.9 NOIP模拟题 T1 两个圆的面积求并 /* 计算圆的面积并 多个圆要用辛普森积分解决 这里只有两个,模拟计算就好 两圆相交时,面积并等于中间两个扇形面积减去两个三角形面积 余弦定理求角度,算 ...

  5. 2018.9.22 NOIP模拟赛

    *注意:这套题目应版权方要求,不得公示题面. 从这里开始 Problem A 妹子 Problem B 旅程 Problem C 老大 因为业务水平下滑太严重,去和高一考NOIP模拟,sad... P ...

  6. NOIP模拟题17.9.26

    B 君的任务(task)[题目描述]与君初相识,犹如故人归.B 君看到了Z 君的第一题,觉得很难.于是自己出了一个简单题.你需要完成n 个任务,第i 任务有2 个属性ai; bi.其中ai 是完成这个 ...

  7. noip模拟题题解集

    最近做模拟题看到一些好的题及题解. 升格思想: 核电站问题 一个核电站有N个放核物质的坑,坑排列在一条直线上.如果连续M个坑中放入核物质,则会发生爆炸,于是,在某些坑中可能不放核物质. 任务:对于给定 ...

  8. 7.22 NOIP模拟7

    又是炸掉的一次考试 T1.方程的解 本次考试最容易骗分的一道题,但是由于T2花的时间太多,我竟然连a+b=c都没判..暴力掉了40分. 首先a+b=c,只有一组解. 然后是a=1,b=1,答案是c-1 ...

  9. 2018.08.22 NOIP模拟 string(模拟)

    string [描述] 给定两个字符串 s,t,其中 s 只包含小写字母以及*,t 只包含小写字母. 你可以进行任意多次操作,每次选择 s 中的一个*,将它修改为任意多个(可以是 0 个)它的前一个字 ...

随机推荐

  1. Luogu P2176 [USACO14FEB]路障Roadblock

    解题思路 这是一道最短路题目,不知道大家有没有做过玛丽卡这道题目,如果没做,在做完这道题之后可以去拿个双倍经验哦 先求出一张图中的最短路径,并将其记录下来,我们首先思考:要有增量的前提是新的最短路径比 ...

  2. Codeforces 280C - Game on Tree

    传送门:280C - Game on Tree 不知道期望是啥的请自行Baidu或Google,(溜了 题目大意,有一棵有根树,每次随机选择一个节点,将这个节点和它的子树删除,问将整棵树删除的期望次数 ...

  3. 信息的表示和处理 及 CS:APP 15213 datalab

    信息的表示和处理 在通用计算机中中,字节作为最为最小 的可寻址的内存单元,而不是访问内存中单独的位. 寻址和字节顺序 big endian (大端法),数据最高字节部分地址在地址处,和人的感觉逻辑相似 ...

  4. Servlet过滤器的使用

    Servlet过滤器的使用 制作人:全心全意 Servlet过滤器:Servlet过滤器与Servlet十分相似,但它具有拦截客户端请求的功能,Servlet过滤器可以改变请求中的内容,来满足实际开发 ...

  5. iframe子页面操作父页面并实现屏蔽页面弹出层效果

  6. Centos下Yum安装PHP5.5,5.6,7.0及扩展

    默认的版本太低了,手动安装有一些麻烦,想采用Yum安装的可以使用下面的方案: 1.检查当前安装的PHP包 yum list installed | grep php 如果有安装的PHP包,先删除他们 ...

  7. zend studio 12.5.1 window 安装并设置笔记

    下载百度云上的安装包-----------------------------------------------安装时,解决window 10的权限问题 安装完成后的设置设置字体window=> ...

  8. pxc增量恢复

    解流 xbstream -x < fullbackup2.xbstream -C /data/fullbackup xbstream -x < fullbackup2.xbstream - ...

  9. noip模拟赛 小Y的问题

    [问题描述]有个孩子叫小 Y,一天,小 Y 拿到了一个包含 n 个点和 n-1 条边的无向连通图, 图中的点用 1~n 的整数编号.小 Y 突发奇想,想要数出图中有多少个“Y 字形”.一个“Y 字形” ...

  10. vim中256色的配色表

    vim貌似支持的颜色很有限.white  black  yellow  cyan   magenta   blue   grey   green   red,大多数颜色前面都可以加light 或者 d ...