loj2734

洛谷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 如厕计划的更多相关文章

  1. Loj #2731 「JOISC 2016 Day 1」棋盘游戏

    Loj 2731 「JOISC 2016 Day 1」棋盘游戏 JOI 君有一个棋盘,棋盘上有 \(N\) 行 \(3\) 列 的格子.JOI 君有若干棋子,并想用它们来玩一个游戏.初始状态棋盘上至少 ...

  2. 「JOISC 2016 Day 1」棋盘游戏

    「JOISC 2016 Day 1」棋盘游戏 先判无解:第1,3行有连续的空格或四个角有空格. 然后可以发现有解的情况第1,3行可以在任意时间摆放. 对于某一列,若第2行放有棋子,那么显然可以把棋盘分 ...

  3. LOJ #2731. 「JOISC 2016 Day 1」棋盘游戏(dp)

    题意 JOI 君有一个棋盘,棋盘上有 \(N\) 行 \(3\) 列 的格子.JOI 君有若干棋子,并想用它们来玩一个游戏.初始状态棋盘上至少有一个棋子,也至少有一个空位. 游戏的目标是:在还没有放棋 ...

  4. LOJ 2737 「JOISC 2016 Day 3」电报 ——思路+基环树DP

    题目:https://loj.ac/problem/2737 相连的关系形成若干环 / 内向基环树 .如果不是只有一个环的话,就得断开一些边使得图变成若干链.边的边权是以它为出边的点的点权. 基环树的 ...

  5. LOJ 2736 「JOISC 2016 Day 3」回转寿司 ——堆+分块思路

    题目:https://loj.ac/problem/2736 如果每个询问都是 l = 1 , r = n ,那么每次输出序列的 n 个数与本次操作的数的最大值即可.可以用堆维护. 不同区间的询问,可 ...

  6. 「JOISC 2016 Day 3」回转寿司

    https://loj.ac/problem/2736 题解 挺有意思的题. 考虑这种操作不好直接维护,还有时限比较长,所以考虑分块. 考虑一个操作对整个块的影响,无非就是可能把最大的拿走,再把新的元 ...

  7. [LOJ#2732] 「JOISC 2016 Day 2」雇佣计划

    参考博文 (不过个人感觉我讲的稍微更清楚一点) 题目就是让我们求图中满足数值大于等于B的连通块数量 然后我们可以尝试转换为求连通块两端所产生的“谷”的数量,显然一个连通块对谷可以贡献2的答案,最终答案 ...

  8. 题解 「JOISC 2016 Day 3」电报

    题目传送门 题目大意 给出一个\(n\)个点\(n\)条边的图,每个点有且仅有一个出边,改变每条边都会有对应的花费.求最小的花费使得整个图强连通. 思路 很显然,最后的图就是一个环.那我们要求的答案实 ...

  9. 「JOISC 2015 Day 1」卡片占卜

    题目描述 K 理事长是占卜好手,他精通各种形式的占卜.今天,他要用正面写着 I ,背面写着 O 的卡片占卜一下日本 IOI 国家队的选手选择情况. 占卜的方法如下: 首先,选取五个正整数 A,B,C, ...

随机推荐

  1. Redis常用数据结构和操作

    1.String 存入字符类型 Set name luowen 设置name = luowen 存储 Get name 获取设置好的name的值 Setnx name luowen 设置name键值为 ...

  2. linux安装与卸载软件

    在ubuntu系统中,通常使用apt-get命令完成对软件的安装与卸载 安装的软件通常都放置在一些源中,国内有很多镜像源供下载使用,而系统设置的源保存在目录/etc/apt/sources.list文 ...

  3. 【Python】数组排序

    1.numpy库:argsort() argsort函数返回的是数组值从小到大的索引值(升序排列) 一维: In [1]: import numpy as np In [2]: x = np.arra ...

  4. 【转】Pro Android学习笔记(三):了解Android资源(上)

    在Android开发中,资源包括文件或者值,它们和执行应用捆绑,无需在源代码中写死,因此我们可以改变或替换他们,而无需对应用重新编译. 了解资源构成 参考阅读Android学习笔记(三八):资源res ...

  5. selenium+python中,框架中,怎么返回上一个菜单

    /退回上一级表单 driver.switchTo().defaultContent();

  6. Eclipse插件:tomcatPluginV33.zip 安装

    一.下载 地址:http://www.eclipsetotale.com/tomcatPlugin.html 二.安装 1.解压tomcatPluginV33.zip到Eclipse的\feature ...

  7. selenium 点击页面链接测试

    点击页面链接测试 http://www.51testing.com/html/21/n-862721.html 需求:现在有一个网站的页面,我希望用python自动化的测试点击这个页面上所有的在本窗口 ...

  8. 《Java多线程编程核心技术》读后感(八)

    不使用等待/通知机制实现线程间通信 使用sleep()结合while(true)死循环来实现多个线程间通信 package Third; import java.util.ArrayList; imp ...

  9. 《Java多线程编程核心技术》读后感(二)

    方法内的变量为线程安全 package Second; public class HasSelfPrivateNum { public void addI(String username) { try ...

  10. day6 面向对象(3)

    继承 1.1   类和类之间的常见关系. 1:既然继承是描述类和类之间的关系,就需要先来了解类和类之间的常见关系 1.1.1   现实生活的整体与部分 举例说明 1:现实生活 1:学生   是人 2: ...