Problem

BZOJ3676【APIO2014】回文串

Time Limit: 20Sec20 Sec
Memory Limit: 128MB128 MB

Description

给你一个由小写拉丁字母组成的字符串 ss。我们定义 ss 的一个子串的存在值为这个子串在 ss 中出现的次数乘以这个子串的长度。
对于给你的这个字符串 ss,求所有回文子串中的最大存在值。

Input

输入只有一行,为一个只包含小写字母(az)(a-z)的非空字符串 ss

Output

输出一个整数,表示所有回文子串中的最大存在值。

Read more »

Problem

BZOJ3676【NOI2015】品酒大会

Time Limit: 10Sec10 Sec
Memory Limit: 512MB512 MB

Description

一年一度的“幻影阁夏日品酒大会”隆重开幕了。大会包含品尝和趣味挑战两个环节,分别向优胜者颁发“首席品酒家”和“首席猎手”两个奖项,吸引了众多品酒师参加。
在大会的晚餐上,调酒师 RainbowRainbow 调制了 nn 杯鸡尾酒。这 nn 杯鸡尾酒排成一行,其中第 ii 杯酒 (1in)(1\le i\le n) 被贴上了一个标签 sis_i,每个标签都是 2626 个小写英文字母之一。设 str(i,j)str(i,j) 表示第 ii 杯酒到第 jj 杯酒的 ji+1j-i+1 个标签顺次连接构成的字符串。若 str(l1,r1)=str(l2,r2)str(l_1,r_1)=str(l_2,r_2),其中1l1r1n1\le l_1\le r_1\le n1l2r2n1\le l_2\le r_2\le nl1l2l_1\ne l_2r1l1+1=r2l2+1=pr_1-l_1+1=r_2-l_2+1=p,则称第 l1l_1 杯酒与第 l2l_2 杯酒是“pp 相似”的。当然两杯“pp 相似” (p>1)(p>1) 的酒同时也是“11 相似”、“22 相似”、……、“(p1)(p-1) 相似”的。特别地,对于任意的1p,qn,pq1\le p,q\le n, p\ne q,第 pp 杯酒和第 qq 杯酒都是“00 相似”的。
在品尝环节上,品酒师 FredaFreda 轻松地评定了每一杯酒的美味度,凭借其专业的水准和经验成功夺取了“首席品酒家”的称号,其中第 ii 杯酒(1in)(1\le i\le n) 的美味度为 aia_i。现在 RainbowRainbow 公布了挑战环节的问题:本次大会调制的鸡尾酒有一个特点,如果把第 ii 杯酒与第 jj 杯酒调兑在一起,将得到一杯美味度为 ai×aja_i\times a_j 的酒。现在请各位品酒师分别对于 p=0,1,2,,p1p = 0,1,2,\cdots ,p-1,统计出有多少种方法可以选出 22 杯“pp 相似”的酒,并回答选择 22 杯“pp相似”的酒调兑可以得到的美味度的最大值。

Input

11 行包含 11 个正整数 nn,表示鸡尾酒的杯数。
22 行包含一个长度为 nn 的字符串 SS,其中第 i 个字符表示第 ii 杯酒的标签。
33 行包含 nn 个整数,相邻整数之间用单个空格隔开,其中第 ii 个整数表示第 ii 杯酒的美味度 aia_i

Output

输出文件包括 nn 行。第 ii 行输出 22 个整数,中间用单个空格隔开。第 11个整数表示选出两杯“i1i-1 相似”的酒的方案数,第 22 个整数表示选出两杯“i1i-1 相似”的酒调兑可以得到的最大美味度。若不存在两杯“i1i-1 相似”的酒,这两个数均为 00

Read more »

Problem

Tree

Time Limit: 30Sec30 Sec
Memory Limit: 512MB512 MB

Description

给定NN个点以及每个点的权值,要你处理接下来的MM个操作。操作有44种。操作从0033编号。点从11NN编号。
00.后接两个整数 (x,y)(x, y),代表询问从xxyy的路径上的点的权值的xorxor和。保证xxyy是联通的。
11.后接两个整数 (x,y)(x, y),代表连接xxyy,若x到y已经联通则无需连接。
22.后接两个整数 (x,y)(x, y),代表删除边$ (x, y)$,不保证边 (x,y)(x, y) 存在。
33.后接两个整数 (x,y)(x, y),代表将点xx上的权值变成yy

Input

11行两个整数,分别为NNMM,代表点数和操作数。
22行到第N+1N+1行,每行一个整数,整数在 [1,109][1, 10^9] 内,代表每个点的权值。
N+2N+2行到第N+M+1N+M+1行,每行三个整数,分别代表操作类型和操作所需的量。

Output

对于每一个00号操作,你须输出xxyy的路径上点权的xorxor和。

Read more »

Problem

Beauty Contest

Description

贝茜在牛的选美比赛中赢得了冠军”牛世界小姐”。因此,贝西会参观NN(2N500002\le N\le 50000)个农场来传播善意。世界将被表示成一个二维平面,每个农场位于一对整数坐标(x,y)(x,y)(10000x,y10000-10000\le x,y \le 10000)。没有两个农场共享相同的一对坐标。
尽管贝西沿直线前往下一个农场,但牧场之间的距离可能很大,所以她需要一个手提箱保证在每一段旅程中她有足够吃的食物。她想确定她可能需要旅行的最大可能距离,她要知道她必须带的手提箱的大小。帮助贝西计算农场的最大距离。

Input

11行一个整数nn,第2n+12\sim n+1行两个整数xi yix_i\ y_i表示nn个农场中第ii个的坐标

Output

一行,最远距离的平方

Read more »

Problem

序列

Time  Limit:  10  Sec\mathrm{Time\;Limit:\;10\;Sec}
Memory  Limit:  162  MB\mathrm{Memory\;Limit:\;162\;MB}

Description

给出一个长度为NN的正整数序列CiC_i,求一个子序列,使得原序列中任意长度为MM的子串中被选出的元素不超过K(K,M100)K(K,M\le 100) 个,并且选出的元素之和最大。

Input

11行三个数N,M,KN,M,K。 接下来11NN个正整数表示CiC_i

Output

最大和。

Read more »

Problem

【SHOI2003】Pacman 吃豆豆

Time  Limit:  10  Sec\mathrm{Time\;Limit:\;10\;Sec}
Memory  Limit:  64  MB\mathrm{Memory\;Limit:\;64\;MB}

Description

两个PACMAN\mathrm{PACMAN}吃豆豆。一开始的时候,PACMAN\mathrm{PACMAN}都在坐标原点的左下方,豆豆都在右上方。PACMAN\mathrm{PACMAN}走到豆豆处就会吃掉它。PACMAN\mathrm{PACMAN}行走的路线很奇怪,只能向右走或者向上走,他们行走的路线不可以相交。 请你帮这两个PACMAN\mathrm{PACMAN}计算一下,他们俩加起来最多能吃掉多少豆豆。

Input

第一行为一个整数NN,表示豆豆的数目。 接下来 NN 行,每行一对正整数,表示第ii个豆豆的坐标。任意两个豆豆的坐标都不会重合。

Output

仅有一行包含一个整数,即两个PACMAN\mathrm{PACMAN}加起来最多能吃掉的豆豆数量

Read more »

Problem

学习小组

Time Limit: 5Sec5 Sec
Memory Limit: 128MB128 MB

Description

坑校准备鼓励学生参加学习小组。
共有nn个学生,mm个学习小组,每个学生有一定的喜好,只愿意参加其中的一些学习小组,但是校领导为学生考虑,规定一个学生最多参加kk个学习小组。财务处的大叔就没那么好了,他想尽量多收钱,因为每个学生参加学习小组都要交一定的手续费,不同的学习小组有不同的手续费。然而,事与愿违,校领导又决定对学习小组组织者进行奖励,若有aa个学生参加第i个学习小组,那么给这个学习小组组织者奖励Ci×a2C_i\times a^2元。在参与学生(而不是每个学习小组的人数总和)尽量多的情况下,求财务处最少要支出多少钱(若为负数,则输出负数)(支出=总奖励费总手续费支出=总奖励费-总手续费)。

Input

输入有若干行,第一行有三个用空格隔开的正整数nmkn、m、k。接下来的一行有mm个正整数,表示每个CiC_i。第三行有mm个正整数,表示参加每个学习小组需要交的手续费FiF_i。再接下来有一个nnmm列的矩阵,表若第iijj列的数字是11,则表示第ii个学生愿意参加第jj个学习小组,若为00,则为不愿意。

Output

输出只有一个整数,为最小的支出。

Read more »

Problem

【HNOI2001】软件开发

Time Limit: 10Sec10 Sec
Memory Limit: 162MB162 MB

Description

某软件公司正在规划一项nn天的软件开发计划,根据开发计划第ii天需要nin_i个软件开发人员,为了提高软件开发人员的效率,公司给软件人员提供了很多的服务,其中一项服务就是要为每个开发人员每天提供一块消毒毛巾,这种消毒毛巾使用一天后必须再做消毒处理后才能使用。消毒方式有两种,AA种方式的消毒需要aa天时间,BB种方式的消毒需要bb天(b>ab>a),AA种消毒方式的费用为每块毛巾fAf_A, BB种消毒方式的费用为每块毛巾fBf_B,而买一块新毛巾的费用为ff(新毛巾是已消毒的,当天可以使用);而且f>fA>fBf>f_A>f_B。公司经理正在规划在这nn天中,每天买多少块新毛巾、每天送多少块毛巾进行AA种消毒和每天送多少块毛巾进行BB种消毒。当然,公司经理希望费用最低。你的任务就是:为该软件公司计划每天买多少块毛巾、每天多少块毛巾进行AA种消毒和多少毛巾进行BB种消毒,使公司在这项nn天的软件开发中,提供毛巾服务的总费用最低。

Input

11行为n,a,b,f,fA,fBn,a,b,f,f_A,f_B. 第22行为n1,n2,,nnn_1,n_2,\cdots,n_n. (注:1f,fA,fB60,1n10001\le f,f_A,f_B\le 60,1\le n\le 1000

Output

最少费用

Read more »

Problem

游行

Time Limit: 10Sec10 Sec
Memory Limit: 512MB512 MB

Description

每年春季,在某岛屿上都会举行游行活动。
在这个岛屿上有NN个城市,MM条连接着城市的有向道路。
你要安排英雄们的巡游。英雄从城市sis_i出发,经过若干个城市,到城市tit_i结束,需要特别注意的是,每个英雄的巡游的sis_i可以和tit_i相同,但是必须至少途径2个城市。
每次游行你的花费将由33部分构成:

  • 每个英雄游行经过的距离之和,需要特别注意的是,假如一条边被途径了kk次,那么它对答案的贡献是k×cik\times c_icic_i表示这条边的边权。
  • 如果一个英雄的巡游的sis_i不等于tit_i,那么会额外增加CC的费用。因为英雄要打的回到起点。
  • 如果一个城市没有任何一个英雄途经,那么这个城市会很不高兴,需要CC费用的补偿。

你有无数个的英雄。你要合理安排游行方案,使得费用最小。
由于每年,CC值都是不一样的。所以你要回答QQ个询问,每个询问都是,当CC为当前输入数值的时候的答案。

Input

第一行正整数N,M,QN,M,Q
接下来的MM行,每行ai,bi,cia_i,b_i,c_i,表示有一条从aia_ibib_i,边权为cic_i的有向道路。保证不会有自环,但不保证没有重边。
接下来QQ行,每行一个CC,表示询问当每次费用为CC时的最小答案。

Output

QQ行,每行代表一个询问的答案。

Read more »

Problem

【HNOI2007】梦幻岛宝珠

Time  Limit:  10  Sec\mathrm{Time\;Limit:\;10\;Sec}
Memory  Limit:  162  MB\mathrm{Memory\;Limit:\;162\;MB}

Description

给你N颗宝石,每颗宝石都有重量和价值。要你从这些宝石中选取一些宝石,保证总重量不超过W,且总价值最大,输出最大的总价值。
数据范围:N100W230N\le 100,W\le 2^{30},且保证每颗宝石的重量可以表示为a×2ba\times 2^b的形式(其中a10,b30a\le 10,b\le 30

Input

输入文件中包含多组数据。每组数据的格式如下:第一行是两个正整数nnWW1n100,1W2301\le n\le 100,1\le W\le 2^{30},分别表示宝石的数目和最多能带走的宝石重量。接下来的nn行,每行有两个正整数weightiweight_ivalueivalue_i1weighti230,0valuei2301\le weight_i\le 2^{30}, 0\le value_i\le 2^{30},分别表示第i颗宝石的重量和价值,且保证weightiweight_i能写成a×2b(1a10,0b30)a\times 2^b(1\le a\le 10,0\le b\le 30)的形式。同一行的两个正整数之间用空格隔开。最后一组数据的后面有两个1-1,表示文件的结束。这两个1-1并不代表一组数据,你不需对这组数据输出结果。并且输入文件中数据的组数不超过2020

Output

对于输入的每组数据,输出一个整数CC,表示小P最多能带走的宝石的总价值。每个结果整数CC单独占一行,且保证CC不会超过2302^{30}

Read more »