CodeM美团点评编程大赛初赛A轮
时间限制:1秒
空间限制:32768K
他们训练的方式是:n个人排成一列跑步,前后两人之间相隔 u 米,每个人正常速度均为 v 米/秒。
当某个配送员排在最后的时候,他需要以当时自己的最高速度往前跑,直到超过排头的人 u 米,然后降回到原始速度 v 米/秒。每个人最初的最高速度为c[i] 米/秒,每轮衰减d[i] 米/秒,也就是说,如果i是第j个跑的,那么他的速度就是c[i]-(j-1)*d[i] 米/秒。
n个人初始以随机的顺序排列,每种顺序的概率完全相等,跑完一轮(每个人都追到排头一次,序列恢复原样)的期望需要的时间是多少?
输入描述:
第一行整数n(<=1000), 实数v(<=100) , 实数u(<=10)
第二行n个实数每个人的速度c[i](<=50000)
第三行n个实数值每个人衰减量d[i](<=10) 输入数据保证每个人的速度不会衰减到<=v
输出描述:
答案保留3位小数。
输入例子:
10 37.618 0.422
72.865 126.767 202.680 106.102 99.516 134.418 167.952 173.646 120.210 136.571
2.941 3.664 7.363 4.161 0.246 8.046 5.521 7.473 7.178 5.649
输出例子:
0.815
#include <stdio.h>
#include <bits/stdc++.h>
#define rep(i,x,y) for(int i=x;i<=y;++i)
#define dep(i,x,y) for(int i=x;i>=y;--i)
using namespace std;
const int N = ;
int n;
double v,u,c[N],d[N];
int main(){
scanf("%d%lf%lf",&n,&v,&u);
rep(i,,n) scanf("%lf",c+i);
rep(i,,n) scanf("%lf",d+i);
double ans = ;
rep(i,,n) rep(j,,n) ans+=1.0/(c[i]-(j-)*d[i]-v);
ans*=u;
printf("%.3f\n",ans);
}
时间限制:1秒
空间限制:32768K
现在要把大水缸的水倒入n杯水中,使得n杯水的温度相同,请问这可能吗?并求出可行的最高温度,保留4位小数。
注意:一杯温度为t1单位、体积为c1升的水与另一杯温度为t2单位、体积为c2升的水混合后,温度变为(t1*c1+t2*c2)/(c1+c2),体积变为c1+c2。
输入描述:
第一行一个整数n, 1 ≤ n ≤ 10^5
第二行两个整数T,C,其中0 ≤ T ≤ 10^4, 0 ≤ C ≤ 10^9
接下来n行每行两个整数t[i],c[i]
0 ≤ t[i], c[i] ≤ 10^4
输出描述:
如果非法,输出“Impossible”(不带引号)否则第一行输出“Possible"(不带引号),第二行输出一个保留4位小数的实数表示答案。 样例解释:往第二杯水中倒0.5升水
往第三杯水中到1升水
三杯水的温度都变成了20
输入例子:
3
10 2
20 1
25 1
30 1
输出例子:
Possible
20.0000
#include<bits/stdc++.h>
#define int64 long long
#define rep(i,x,y) for(int i=(x);i<=(y);++i)
#define N 120000
using namespace std;
int n,t[N],c[N];
int T,C;
void P(double x){
printf("Possible\n");
printf("%.4lf\n",x);
exit();
}
void fail(){
printf("Impossible\n");
exit();
}
int main(){
scanf("%d",&n);
scanf("%d%d",&T,&C);
bool f1=,f2=;
rep(i,,n){
scanf("%d%d",&t[i],&c[i]);
if(t[i]<T)f1=;
if(t[i]>T)f2=;
}
if(f1 && f2)fail();
if(!f1 && !f2)P(T);
if(f1){
T*=-;
rep(i,,n)t[i]*=-;
}
int minnT=1e9;
int64 cc=;
rep(i,,n)minnT=min(minnT,t[i]);
if(minnT==T)fail();
rep(i,,n)cc+=(minnT*c[i]-c[i]*t[i]);
if(T-minnT>&&cc>(int64)C*(T-minnT)||T-minnT<&&cc<(int64)C*(T-minnT))fail();
if(f1){
double f1=,f2=;
f1=(double)T*C;
f2=C;
rep(i,,n)f1+=t[i]*c[i],f2+=c[i];
P(-f1/f2);
}else P(minnT*(f1?-:));
return ;
}
时间限制:2秒
空间限制:262144K
我们定义字符串的价值为其最长回文子串的长度(回文串表示从正反两边看完全一致的字符串,如"aba"和"xyyx")。
需要求出所有可能的C中价值最大的字符串,输出这个最大价值即可
输入描述:
第一行一个整数T(T ≤ 50)。
接下来2T行,每两行两个字符串分别代表A,B(|A|,|B| ≤ 50),A,B的字符集为全体小写字母。
输出描述:
对于每组数据输出一行一个整数表示价值最大的C的价值。
输入例子:
2
aa
bb
a
aaaabcaa
输出例子:
4
5
作者:张晴川 loj.ac
链接:https://www.nowcoder.com/discuss/28582
来源:牛客网
合并回文子串
- 考虑 c 中的回文子串,既然是子串,就一定可以拆成 a, b 两串的两个子串的 combine。不妨 设是 a[i, j]与
b[k, l]的 combine,则可以考虑动态规划的状态 f[i][j][k][l]表示 a[i, j]与 b[k, l]的
combine 能否组成回文子串。 则可以匹配第一个字符和最后一个字符来转移,根据第一个字符和最后一个字符分别来自 a 还是 b 共有四种转移:
- 边界情况:
- 当 j – i + 1 + l – k + 1 = 0 时答案是 true
- 当 j – i + 1 + l – k + 1 = 1 时答案是 true。
- 代码:
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<iostream>
using namespace std;
int T;
int n,m;
char a[55],b[55];
bool f[55][55][55][55];
int main()
{
for(scanf("%d",&T);T--;)
{
scanf("%s",a+1);n=strlen(a+1);
scanf("%s",b+1);m=strlen(b+1);
int ans=0;
for(int d1=0;d1<=n;d1++)
for(int d2=0;d2<=m;d2++)
for(int i=1,j=d1;j<=n;i++,j++)
for(int k=1,l=d2;l<=m;k++,l++)
{
if(d1+d2<=1)f[i][j][k][l]=1;
else
{
f[i][j][k][l]=0;
if(d1>1&&a[i]==a[j])f[i][j][k][l]|=f[i+1][j-1][k][l];
if(d1&&d2&&a[i]==b[l])f[i][j][k][l]|=f[i+1][j][k][l-1];
if(d1&&d2&&b[k]==a[j])f[i][j][k][l]|=f[i][j-1][k+1][l];
if(d2>1&&b[k]==b[l])f[i][j][k][l]|=f[i][j][k+1][l-1];
}
if(f[i][j][k][l])ans=max(ans,d1+d2);
}
printf("%d\n",ans);
}
return 0;
}
题目描述
给定一个完全二分图,图的左右两边的顶点数目相同。我们要把图中的每条边染成红色、蓝色、或者绿色,并使得任意两条红边不共享端点、同时任意两条蓝边也不共享端点。计算所有满足条件的染色的方案数,并对109+710^{9}+7109+7取模。
输入格式
二分图单边的顶点数目 nnn。
输出格式
输出一个整数,即所求的答案。
样例
样例输入
2
样例输出
35
数据范围与提示
n≤1e7

按照题解做就好了,这个题本来我还真的找不到这个组合数
#include <bits/stdc++.h>
using namespace std;
const int N=1e7+,MD=1e9+;
int n,fac[N],inv[N],F[N],ans;
int po(int x,int y)
{
int t=;
for(; y; y>>=,x=1LL*x*x%MD)
if(y&)t=1LL*t*x%MD;
return t;
}
int main()
{
scanf("%d",&n);
fac[]=,fac[]=,F[]=,F[]=;
for(int i=; i<=n; i++)
{
fac[i]=1LL*fac[i-]*i%MD;
F[i]=(1LL*F[i-]*(i+i)-1LL*(i-)*(i-)%MD*F[i-])%MD;
}
inv[n]=po(fac[n],MD-);
for (int i=n; i; i--)
inv[i-]=1LL*inv[i]*i%MD;
for(int i=; i<=n; i++)
ans=(ans+1LL*(i&?-:)*fac[n]*fac[n]%MD*inv[i]%MD*inv[n-i]%MD*inv[n-i]%MD*F[n-i]%MD*F[n-i])%MD;
printf("%d\n",(ans+MD)%MD);
return ;
}
CodeM美团点评编程大赛初赛A轮的更多相关文章
- CodeM美团点评编程大赛初赛B轮 黑白树【DFS深搜+暴力】
[编程题] 黑白树 时间限制:1秒 空间限制:32768K 一棵n个点的有根树,1号点为根,相邻的两个节点之间的距离为1.树上每个节点i对应一个值k[i].每个点都有一个颜色,初始的时候所有点都是白色 ...
- CodeM美团点评编程大赛复赛 做题感悟&题解
[T1] [简要题意] 长度为N的括号序列,随机确定括号的方向:对于一个已确定的序列,每次消除相邻的左右括号(右左不行),消除后可以进一步合并和消除直到不能消为止.求剩下的括号的期望.\(N \l ...
- [题解] CodeM美团点评编程竞赛资格赛题
最近看到牛课网美团一个编程竞赛,想着做做看,结果一写就是两天..真是写不动了啊.话不多说,下面开始我的题解. 题目大致还是比较考察思维和代码能力(因为自己代码能力较弱,才会觉得比较考察代码能力吧= = ...
- codeM美团编程大赛初赛B轮D题
[编程题] 模 时间限制:1秒空间限制:32768K 给定四个正整数a,b,c,k,回答是否存在一个正整数n,使得a*n在k进制表示下的各位的数值之和模b为c.输入描述:第一行一个整数T(T < ...
- codeM美团编程大赛初赛B轮D题(考验你的数学思维!)
[编程题] 模 时间限制:1秒空间限制:32768K 给定四个正整数a,b,c,k,回答是否存在一个正整数n,使得a*n在k进制表示下的各位的数值之和模b为c.输入描述:第一行一个整数T(T < ...
- 2018美团CodeM编程大赛初赛B轮 A题开关灯
题目描述 美团的办公室一共有n层,每层有m个会议室,可以看成是一个n*m的网格图.工程师们每天的工作需要协作的地方很多,经常要到会议室开会解决各种问题.公司是提倡勤俭节约的,因此每次会议室只在使用时才 ...
- codeM美团编程大赛初赛B轮E题
题目描述 给出一个正整数n,我们把1..n在k进制下的表示连起来记为s(n,k),例如s(16,16)=123456789ABCDEF10, s(5,2)=11011100101.现在对于给定的n和字 ...
- 美团2018年CodeM大赛-初赛B轮 B 配送(最短路)
美团2018年CodeM大赛-初赛B轮 B 配送 题意 题解 对于每个任务,只要从上个任务的终点出发即可. 时间.地点很少,可以算出每个地点-时间的最小花费. 以题目描述的起点终点起始结束时间建图,很 ...
- 【结果发布】第六届SeedCoder编程大赛初赛结果发布
微软俱乐部科技文化月seedcoder2014编程大赛已经初审完成. 评审小组选出最棒的作品进入决赛(现场答辩+陈述环节,由评委现场打分).终于排名由"初赛分数+现场答辩分"决定. ...
随机推荐
- WEB网页如何让背景图片跟随可视窗口自适应大小
HTML代码 <body id="body"> <div class="info-wrapper"> <div class=&qu ...
- javaSe-常用的类之Calender
Calendar是java中常用的类,比data类使用更加方便,更能更加强大,好吧多的不用你说了,直接上代码 import java.util.Calendar;//需要引进的包 public cla ...
- BZOJ 2539: [Ctsc2000]丘比特的烦恼
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 695 Solved: 260[Submit][Status][Discuss] Description ...
- 使用Java connector消费ABAP系统的函数
Java Connector(JCO)环境的搭建:Step by step to download and configure JCO in your laptop 我的ABAP系统有个函数名叫ZDI ...
- cookie存验证码时间,时间没走完不能再次点击
<script> var balanceSeconds=getcookie('Num'); console.log(balanceSeconds) var timer; var isCli ...
- npm WARN saveError ENOENT: no such file or directory, open 'C:\Users\James\package.json'
在运行如下命令时, 遇到了问题: npm install --registry=https://registry.npm.taobao.org npm run dev 错误提示: 解决办法: 生成一个 ...
- iOSAES加密的实现
+(NSData *)AES256ParmEncryptWithKey:(NSString *)key Encrypttext:(NSData *)text //加密 { char keyPtr[k ...
- cocos2dx for android 接入 fmod的过程
cocos2dx自带的音效播放有SimpleAudioEngine和AudioEngine两个,SimpleAudioEngine可以播放简单的音效, 如果播放音效数量过多的话,多导致有些音效播放失败 ...
- kvm笔记
1 virt-manager安装虚拟机无法使用键盘解决 今天远程用VNC登录服务器安装虚拟机,结果使用virt-manager安装虚拟机后在初始阶段无法使用键盘设置,这不雪崩了,后来来回试,找到了原因 ...
- 【思维题 并查集 图论】bzoj1576: [Usaco2009 Jan]安全路经Travel
有趣的思考题 Description Input * 第一行: 两个空格分开的数, N和M * 第2..M+1行: 三个空格分开的数a_i, b_i,和t_i Output * 第1..N-1行: 第 ...