CodeChef August Lunchtime 2014 题解
给一个由a和b两种类型的字符组成的字符串,每次可以从中选取任意长度的回文子序列(不一定连续)并删除。问最少需要几次能将整个字符串为空。
思路:如果本身是个回文串,那么只需要一次,否则需要两次(第一次选全部的a,第二次全部选b)。
Accepted Code:
def is_palidrome(s):
n = len(s);
for i in xrange(n / 2):
if s[i] != s[n - i - 1]:
return False;
return True; if __name__ == '__main__':
T = int(input())
while T:
T -= 1;
H = raw_input();
print 1 if is_palidrome(H) else 2;
知识点:给出公式:ind = (A * ind + B) % M,求其循环节长度。从公式可以看出,循环节不超过M。
另外,这题精度也是个坑,可以手动输出:".5"和".0"。
Accepted Code:
/*************************************************************************
> File Name: WALL.cpp
> Author: Stomach_ache
> Mail: sudaweitong@gmail.com
> Created Time: 2014年08月31日 星期日 19时16分49秒
> Propose:
************************************************************************/ #include <cmath>
#include <string>
#include <cstdio>
#include <vector>
#include <iomanip>
#include <fstream>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
/*Let's fight!!!*/ const int MAX_M = ;
typedef long long LL;
LL IND[MAX_M], D[MAX_M], vis[MAX_M];
LL t, h, n, m, a, b, ind;
#define rep(i, n) for (int i = (0); i < (n); i++)
void seed(LL &ind) {
ind = (a * ind + b) % m;
} int main(void) {
ios::sync_with_stdio(false);
cin >> t;
while (t--) {
cin >> h >> n >> m >> a >> b >> ind;
rep (i, m) cin >> D[i]; int loop = ;
memset(vis, -, sizeof(vis));
vis[ind] = ;
IND[] = ind;
LL ans = ;
while (loop < n) {
ans += D[ind];
seed(ind);
if (vis[ind] != -) break;
vis[ind] = loop;
IND[loop] = ind;
++loop;
} if (loop <= n - ) {
LL sum = ;
for (int i = vis[ind]; i < loop; i++) sum += D[IND[i]];
LL times = (n - - loop) / (loop - vis[ind]);
ans += times * sum;
loop += times * (loop - vis[ind]);
loop++;
}
while (loop <= n - ) {
ans += D[ind];
seed(ind);
loop++;
} cout << ans * h / ;
if (ans * h % ) cout << ".5";
else cout << ".0";
cout << endl;
} return ;
}
待续。。。
待续。。。
CodeChef August Lunchtime 2014 题解的更多相关文章
- [转载]ECMA-262 6th Edition / Draft August 24, 2014 Draft ECMAScript Language Specification
http://people.mozilla.org/~jorendorff/es6-draft.html#sec-23.4 Draft Report Errors and Issues at: htt ...
- 「Codechef April Lunchtime 2015」Palindromeness
「Codechef April Lunchtime 2015」Palindromeness 解题思路 : 考虑对于回文子串 \(s\) 贡献的定义: \[ value_s = [\ s[1,\lflo ...
- codechef January Lunchtime 2017简要题解
题目地址https://www.codechef.com/LTIME44 Nothing in Common 签到题,随便写个求暴力交集就行了 Sealing up 完全背包算出得到长度≥x的最小花费 ...
- codechef January Challenge 2014 Sereja and Graph
题目链接:http://www.codechef.com/JAN14/problems/SEAGRP [题意] 给n个点,m条边的无向图,判断是否有一种删边方案使得每个点的度恰好为1. [分析] 从结 ...
- Codechef Not a Triangle题解
找出一个数组中的三个数,三个数不能组成三角形. 三个数不能组成三角形的条件是:a + b < c 两边和小于第三边. 这个问题属于三个数的组合问题了.暴力法可解,可是时间效率就是O(n*n*n) ...
- Codechef March Challenge 2014——The Street
The Street Problem Code: STREETTA https://www.codechef.com/problems/STREETTA Submit Tweet All submis ...
- CodeChef March Challenge 2019题解
传送门 \(CHNUM\) 显然正数一组,负数一组 for(int T=read();T;--T){ n=read(),c=d=0; fp(i,1,n)x=read(),x>0?++c:++d; ...
- CodeChef March Lunchtime 2018 div2
地址https://www.codechef.com/LTIME58B?order=desc&sortBy=successful_submissions 简单做了一下,前三题比较水,第四题应该 ...
- 【分块+树状数组】codechef November Challenge 2014 .Chef and Churu
https://www.codechef.com/problems/FNCS [题意] [思路] 把n个函数分成√n块,预处理出每块中各个点(n个)被块中函数(√n个)覆盖的次数 查询时求前缀和,对于 ...
随机推荐
- 四. (TDZ)展示性死区
在ES6中怎么使用 var Let const ? 1.var 声明之前 2. let 声明之前 3. const声明之前
- string、char* 、int数据类型相互转换
string类型转换成char*类型,这里一般有以下三种方法: 1.c_str()方法 string name="Qian"; char *str=(char*)name.c_st ...
- mysql localhost可以连输入本机ip地址连接不了
Mysql 默认是没有开启这个权限的(只允许使用 host:localhost,或者 host:127.0.0.1),如果想用 host:192.168.1.* ,来访问mysql ,需要手动开启这个 ...
- php中$_REQUEST、 $_GET、 $_POST、 $_COOKIE 的关系和区别
看到REQUEST可以通吃GET .POST .COOKIE 后 感觉这个$_REQUEST太强大了是不是其他的几个超级变量就没有用了,下面对他们整体做个比较: 1.安全性 post>get 2 ...
- Android之相关术语
Dalvik: Android特有的虚拟机,和JVM不同,Dalvik虚拟机非常适合在移动终端上使用! AVD: (android virtual machine):安卓虚拟设备,就是安卓的模拟器 A ...
- Jetty启动配置解析
目录 1. jetty概述 2. spring-jetty启动配置 1. jetty概述 维基百科:Jetty是一个纯粹的基于Java的网页服务器和Java Servlet容器. Jetty Serv ...
- vue表格之:formatter=fun
作用:对从数据库中取出的数据进行处理后展示. 示例1: partner1为从数据库中查询出的展示字段,值为数字id,需要转化成中文名称 partners为全量查询结果,包含了id与中文名称的一一对应关 ...
- vue 实现邮戳边缘
效果: vue: <template> <div class="couponItem"> <div class="itemLeft" ...
- java连接SQLserver数据库模板代码
package cn.mldn.lxh.dbc; import java.sql.Connection; import java.sql.DriverManager; public class Dat ...
- Luogu P1429 平面最近点对(加强版)(分治)
P1429 平面最近点对(加强版) 题意 题目描述 给定平面上\(n\)个点,找出其中的一对点的距离,使得在这\(n\)个点的所有点对中,该距离为所有点对中最小的. 输入输出格式 输入格式: 第一行: ...