loj2734「JOISC 2016 Day 2」女装大佬 || 洛谷P3615 如厕计划
http://218.5.5.242:9021/problem/185
不会做...
题解(来自ditoly):

这一步更详细的解释(来自kkksc03):
还是从后面推。我们把女性设为+1,男性设为-1,然后从队伍末尾开始开始计算后缀和。一但后缀和到了-2,就说明到了两个男的商量谁去女厕的地步。所以说只要保证后缀和一直大于等于-1,那么这个就一定可以在N分钟内解决(请读者自行证明,利用数学归纳法)
F>=M-1,M<=F+1
S=F+M>=2M-1
<=2F+1
F>=(S-1)/2
S:F>=[S/2]
小串长度L,复读次数X
F在小串中的位置:A[1..6]从小到大
之前有a名女性,b个位置
第1遍
a+1,b+L-A[6]+1,2a+2,2a+2-(b+L-A[6]+1)
a+2,b+L-A[5]+1,2a+4,2a+4-(b+L-A[5]+1)
...
a+6,b+L-A[1]+1,2a+12
第k遍复读
a+6k-5,b+Lk-A[6]+1,2a+12k-10,2a+12k-10-(b+Lk-A[6]+1)
2a-10-b+A[6]-1+(12-L)k
12=2a
2a-L>0 -->
2(a+F)-(b+Lk-pos+1)
a+N(k-1)+F,b+Lk-pos,2a+2N(k-1)+2F,
(2N-L)k+2a-2N+2F-b+pos
a+N(k-1)+F,b+Lk-pos,2a+2N(k-1)+2F,
2a+(2N-L)k-2N+2F-b+j
a=0,b=2
k,k+2,k-2

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
#define fi first
#define se second
#define mp make_pair
#define pb push_back
typedef long long ll;
typedef unsigned long long ull;
ll n,m;
char dattt[],*st=dattt,*s[];
ll len[],x[],anss;
int main()
{
ll i,j,a=,b=,N,F,tt;
scanf("%lld",&n);
scanf("%lld",&m);
for(i=;i<=m;++i)
{
s[i]=st;
scanf("%s%lld",st,x+i);
len[i]=strlen(st);
st+=len[i]+;
}
tt=;
for(i=;i<=m;++i)
{
F=;
for(j=;j<len[i];++j)
F+=s[i][j]=='F';
tt+=F*x[i];
}
if(tt<n)
{
puts("-1");
return ;
}
for(i=m;i>=;--i)
{
F=;N=;
for(j=len[i]-;j>=;--j)
N+=s[i][j]=='F';
if(*N-len[i]<)
{
for(j=len[i]-;j>=;--j)
{
if(s[i][j]=='F')
{
++F;
anss=max(anss,-((*N-len[i])*x[i]+*a-*N+*F-b+j));
}
}
}
else
{
for(j=len[i]-;j>=;--j)
{
if(s[i][j]=='F')
{
++F;
anss=max(anss,-(-len[i]+*a+*F-b+j));
}
}
}
a+=F*x[i];
b+=len[i]*x[i];
}
printf("%lld",anss);
return ;
}
loj2734「JOISC 2016 Day 2」女装大佬 || 洛谷P3615 如厕计划的更多相关文章
- Loj #2731 「JOISC 2016 Day 1」棋盘游戏
Loj 2731 「JOISC 2016 Day 1」棋盘游戏 JOI 君有一个棋盘,棋盘上有 \(N\) 行 \(3\) 列 的格子.JOI 君有若干棋子,并想用它们来玩一个游戏.初始状态棋盘上至少 ...
- 「JOISC 2016 Day 1」棋盘游戏
「JOISC 2016 Day 1」棋盘游戏 先判无解:第1,3行有连续的空格或四个角有空格. 然后可以发现有解的情况第1,3行可以在任意时间摆放. 对于某一列,若第2行放有棋子,那么显然可以把棋盘分 ...
- LOJ #2731. 「JOISC 2016 Day 1」棋盘游戏(dp)
题意 JOI 君有一个棋盘,棋盘上有 \(N\) 行 \(3\) 列 的格子.JOI 君有若干棋子,并想用它们来玩一个游戏.初始状态棋盘上至少有一个棋子,也至少有一个空位. 游戏的目标是:在还没有放棋 ...
- LOJ 2737 「JOISC 2016 Day 3」电报 ——思路+基环树DP
题目:https://loj.ac/problem/2737 相连的关系形成若干环 / 内向基环树 .如果不是只有一个环的话,就得断开一些边使得图变成若干链.边的边权是以它为出边的点的点权. 基环树的 ...
- LOJ 2736 「JOISC 2016 Day 3」回转寿司 ——堆+分块思路
题目:https://loj.ac/problem/2736 如果每个询问都是 l = 1 , r = n ,那么每次输出序列的 n 个数与本次操作的数的最大值即可.可以用堆维护. 不同区间的询问,可 ...
- 「JOISC 2016 Day 3」回转寿司
https://loj.ac/problem/2736 题解 挺有意思的题. 考虑这种操作不好直接维护,还有时限比较长,所以考虑分块. 考虑一个操作对整个块的影响,无非就是可能把最大的拿走,再把新的元 ...
- [LOJ#2732] 「JOISC 2016 Day 2」雇佣计划
参考博文 (不过个人感觉我讲的稍微更清楚一点) 题目就是让我们求图中满足数值大于等于B的连通块数量 然后我们可以尝试转换为求连通块两端所产生的“谷”的数量,显然一个连通块对谷可以贡献2的答案,最终答案 ...
- 题解 「JOISC 2016 Day 3」电报
题目传送门 题目大意 给出一个\(n\)个点\(n\)条边的图,每个点有且仅有一个出边,改变每条边都会有对应的花费.求最小的花费使得整个图强连通. 思路 很显然,最后的图就是一个环.那我们要求的答案实 ...
- 「JOISC 2015 Day 1」卡片占卜
题目描述 K 理事长是占卜好手,他精通各种形式的占卜.今天,他要用正面写着 I ,背面写着 O 的卡片占卜一下日本 IOI 国家队的选手选择情况. 占卜的方法如下: 首先,选取五个正整数 A,B,C, ...
随机推荐
- 读取配置和动态配置(C方法)
读取配置 无论何种配置文件,定义了配置文件之后,都统一使用系统提供的C方法(可以借助Config单词来帮助记忆)来读取已有的配置.用法:C('参数名称') 例如,读取当前的URL模式配置参数:$mod ...
- php设计模式课程---5、责任链模式是什么
php设计模式课程---5.责任链模式是什么 一.总结 一句话总结: 自己权限不够,就交给上级处理 1.选择结构怎么做到面向对象开闭原则? 也就是说if,都可以用接口的实现来实现,这样就避免了更新的时 ...
- python- 常见算法 python内置模块
1.冒泡排序 需求:请按照从小到大对列表 [13, 22, 6, 99, 11] 进行排序 原理:相邻两个值进行比较,将较大的值放在右侧,依次比较! li=[39,11,43,88,765,9]for ...
- IDEA 设置忽略那些文件不提交到SVN服务器
- tensorflow kmeans 聚类
iris: # -*- coding: utf-8 -*- # K-means with TensorFlow #---------------------------------- # # This ...
- java反射中Class对象详解和类名.class, class.forName(), getClass()区别
1.获得类型类 可以看到,对象a是A的一个实例,A是某一个类,在if语句中使用a.getClass()返回的结果正是类A的类型类,在Java中表示一个特定类型的类型类可以用“类型.class”的方式获 ...
- ACM学习历程—Hihocoder编程之美测试赛B题 大神与三位小伙伴(组合数学 )
时间限制:2000ms 单点时限:1000ms 内存限制:256MB 描述 给你一个m x n (1 <= m, n <= 100)的矩阵A (0<=aij<=10000),要 ...
- C# 线程的暂停和恢复的 实现
我们可以通过ManualResetEvent类来实现. 声明, 初始化时不执行 private static ManualResetEvent _eventWorkList = new ManualR ...
- 云-资讯-Micron-Insight:云的形成方式 — 以及它的发展方向
ylbtech-云-资讯-Micron-Insight:云的形成方式 — 以及它的发展方向 1.返回顶部 1. 云的形成方式 — 以及它的发展方向 当你坐下来开始一天工作的时候,你可能不会考虑到你所做 ...
- NLB
http://www.cnblogs.com/allegro/archive/2011/02/11/1951171.html