Chef and his daily routine

分析:水题,设置优先级,判断如果后面小于前面就输出no

 #include "iostream"
#include "cstdio"
#include "cstring"
#include "string"
using namespace std;
const int maxn=+;
string s;
int T;
int judge(char s){
if(s=='C')
return ;
else if(s=='E')
return ;
else
return ;
}
int main()
{
cin>>T;
while(T--){
cin>>s;
int flag=;
int len=s.length();
for(int i=;i<len-;i++){
if(judge(s[i])>judge(s[i+])){
flag=; break;
}
}
if(flag) cout<<"no"<<endl;
else cout<<"yes"<<endl;
}
}

Courses in an university

分析:简单DP,看上一个状态和当前状态的关系,如果先修课程数相同,则加1,否则取上一门课程加1和当前课程所需先修的最小值

 #include "iostream"
#include "cstdio"
#include "cstring"
#include "string"
using namespace std;
const int maxn=+;
int T;
int a[maxn];
int dp[maxn];
int main()
{
cin>>T;
while(T--)
{
int n;
cin>>n;
a[]=;
for(int i=;i<=n;i++)
scanf("%d",&a[i]);
memset(dp,,sizeof(dp));
dp[]=;
for(int i=;i<=n;i++){
if(a[i]==a[i-])
dp[i]=dp[i-]+;
else{
dp[i]=min((i-a[i]),dp[i-]+);
}
}
cout<<dp[n]<<endl;
}
return ;
}

Median of adjacent maximum numbers

分析:水题,从大到小排,小的排在奇数位,大的排在偶数位即可

 #include "iostream"
#include "cstdio"
#include "cstring"
#include "string"
#include "algorithm"
using namespace std;
const int maxn=*+;
int T,n;
int a[maxn];
int main()
{
cin>>T;
while(T--){
cin>>n;
for(int i=;i<=*n;i++)
cin>>a[i];
sort(a+,a+*n+);
int c[maxn];
c[]=;
for(int i=;i<=n;i++)
c[*i-]=a[i];
for(int i=n+;i<=*n;i++)
c[*(i-n)]=a[i];
int b[maxn];
b[]=;
for(int i=;i<=n;i++){
b[i]=max(c[*i],c[*i-]);
}
cout<<b[n/+]<<endl;
for(int i=;i<=*n;i++)
cout<<c[i]<<" ";
cout<<endl;
}
return ;
}

Chef and Sub Array

分析:很有意思的一道题,首先预处理一下每个位置往前的k个位置的有多少1,然后我们用线段树维护区间最大值即可,坑点比较多,一个是k>=n时候,还有一个是下标问题,容易RE

 #include "iostream"
#include "cstdio"
#include "cstring"
#include "string"
#include "cmath"
#include "vector"
using namespace std;
const int maxn=+;
string t;
int n,k,p;
int dp[maxn];
int a[maxn];
int h[maxn];
void init(string zz){
if(zz[]=='')
dp[]=;
for(int i=;i<k;i++){
if(zz[i]=='')
dp[i]=dp[i-]+;
else
dp[i]=dp[i-];
}
int len=zz.length();
int pos=;
for(int i=k;i<len;i++){
if(zz[pos]==''&&zz[i]=='')
dp[i]=dp[i-]+;
else if(zz[pos]==zz[i])
dp[i]=dp[i-];
else
dp[i]=dp[i-]-;
pos++;
}
}
struct node
{
int left,right,min,max;
}c[*];
void buildtree(int l,int r,int root)
{
c[root].left=l;
c[root].right=r;
if(l==r)
{
c[root].min=c[root].max=a[l];
return ;
}
int mid=(l+r)/;
buildtree(l,mid,root*);
buildtree(mid+,r,root*+);
c[root].min=min(c[root*].min,c[root*+].min);
c[root].max=max(c[root*].max,c[root*+].max);
}
void findtree(int l,int r,int root,int &min1,int &max1)
{
if(c[root].left==l&&c[root].right==r)
{
min1=c[root].min;
max1=c[root].max;
return ;
}
int mid=(c[root].left+c[root].right)/;
if(mid<l)
findtree(l,r,root*+,min1,max1);
else if(mid>=r)
findtree(l,r,root*,min1,max1);
else
{
int min2,max2;
findtree(l,mid,root*,min1,max1);
findtree(mid+,r,root*+,min2,max2);
min1=min(min1,min2);
max1=max(max1,max2);
}
}
int main()
{
scanf("%d%d%d",&n,&k,&p);
for(int i=;i<=n;i++){
int x;
scanf("%d",&x);
t+=(x+'');
}
int len=t.length();
string s=t+t;
memset(dp,,sizeof(dp));
init(s);
for(int i=*len-;i>=;i--){
a[*len-i]=dp[i];
}
buildtree(,*len,);
char r[maxn];
scanf("%s",r);
int min1,max1;
int cnt=;
for(int i=;i<p;i++){
if(r[i]=='!'){
cnt=(cnt+)%len;
}
else{
if(k>=n){
printf("%d\n",dp[*len-]);
continue;
}
if(!cnt)
findtree(cnt+,cnt+n-k+,,min1,max1);
else
findtree(cnt,cnt+n-k,,min1,max1);
printf("%d\n",max1);
}
}
return ;
}

Chef and Subsequences

分析:直接暴力会T,用map来统计mp[a1]表示a1能有多少个组合,然后把相同的情况合并一下递推即可

 #include "iostream"
#include "cstdio"
#include "cstring"
#include "string"
#include "cmath"
#include "map"
using namespace std;
map<long long,long long>mp;
map<long long,long long>::reverse_iterator it;
int main()
{
int n;
long long k;
cin>>n>>k;
for(int i=;i<=n;i++){
long long p;
cin>>p;
if(p>k) continue;
long long h=k/p;
for(it=mp.rbegin();it!=mp.rend();it++){
long long m=it->first;
if(h>=m){
mp[p*m]=mp[p*m]+it->second;
}
}
mp[p]=mp[p]+;
}
long long ans=;
for(it=mp.rbegin();it!=mp.rend();it++)
ans+=it->second;
cout<<ans<<endl;
}

May Challenge 2017的更多相关文章

  1. 【AtCoder】Mujin Programming Challenge 2017

    Mujin Programming Challenge 2017 A - Robot Racing 如果每个数都是一个一个间隔开的,那么答案是\(n!\) 考虑把一个数挪到1,第二个数挪到3,以此类推 ...

  2. CodeChef June Challenge 2017

    好气啊,本来以为比赛时间还有很多,结果回家养病两天回到学校怎么比赛就结束了(雾),大约是小高考弄错了时间? 挑3道有意思的写写题解吧. Cloning 题目大意:给一个序列,每次询问两个等长区间,问区 ...

  3. [codechef July Challenge 2017] Calculator

    CALC: 计算器题目描述大厨有一个计算器,计算器上有两个屏幕和两个按钮.初始时每个屏幕上显示的都是 0.每按一次第一个按钮,就会让第一个屏幕上显示的数字加 1,同时消耗 1 单位的能量.每按一次第二 ...

  4. [codechef July Challenge 2017] Chef and Sign Sequences

    CHEFSIGN: 大厨与符号序列题目描述大厨昨天捡到了一个奇怪的字符串 s,这是一个仅包含‘<’.‘=’和‘>’三种比较符号的字符串.记字符串长度为 N,大厨想要在字符串的开头.结尾,和 ...

  5. [codechef July Challenge 2017] IPC Trainers

    IPCTRAIN: 训练营教练题目描述本次印度编程训练营(Indian Programming Camp,IPC)共请到了 N 名教练.训练营的日程安排有 M 天,每天最多上一节课.第 i 名教练在第 ...

  6. [codechef July Challenge 2017] Pishty and tree

    PSHTTR: Pishty 和城堡题目描述Pishty 是生活在胡斯特市的一个小男孩.胡斯特是胡克兰境内的一个古城,以其中世纪风格的古堡和非常聪明的熊闻名全国.胡斯特的镇城之宝是就是这么一座古堡,历 ...

  7. CF&&CC百套计划2 CodeChef December Challenge 2017 Chef And Easy Xor Queries

    https://www.codechef.com/DEC17/problems/CHEFEXQ 题意: 位置i的数改为k 询问区间[1,i]内有多少个前缀的异或和为k 分块 sum[i][j] 表示第 ...

  8. CF&&CC百套计划2 CodeChef December Challenge 2017 Chef and Hamming Distance of arrays

    https://www.codechef.com/DEC17/problems/CHEFHAM #include<cstdio> #include<cstring> #incl ...

  9. CF&&CC百套计划2 CodeChef December Challenge 2017 Total Diamonds

    https://www.codechef.com/DEC17/problems/VK18 #include<cstdio> #include<iostream> #includ ...

  10. CF&&CC百套计划2 CodeChef December Challenge 2017 Penalty Shoot-out

    https://www.codechef.com/DEC17/problems/CPLAY #include<cstdio> #include<algorithm> using ...

随机推荐

  1. UOJ 41. 矩阵变换

    Discription 给出一个 N 行 M 列的矩阵A, 保证满足以下性质:     1.M>N.     2.矩阵中每个数都是 [0,N] 中的自然数.     3.每行中, [1,N] 中 ...

  2. DELPHI方法注释的标准写法

    /// <summary> /// 查询数据 /// </summary> /// <param name="accountno">帐套号< ...

  3. 【Todo】Spark运行架构

    接上一篇:http://www.cnblogs.com/charlesblc/p/6108105.html 上一篇文章中主要参考的是 Link 这个系列下一篇讲的是Idea,没有细看,又看了再下一篇: ...

  4. aSmack连接server异常smack.SmackException$ ConnectionException thrown by XMPPConnection.connect();

    以下是我在研究asmack4.0出现的异常 06-17 12:02:56.924: W/System.err(10622): org.jivesoftware.smack.SmackException ...

  5. 天下文章一大抄 之 修改excel 创建时间

    Sub ChangeDate()ThisWorkbook.BuiltinDocumentProperties("Creation Date") = #2 28 2016 13:25 ...

  6. [WASM] Create a New Rust/Webpack Project using the rust-webpack Template

    Previous to this post, we set up our own Rust/wasm project from scratch. The Rust/wasm team ships a ...

  7. HTML--比较实用的小例子

    常用的前端实例: 1略 2.在网页商城中的图片当我们把鼠标放上去之后,图片会显示一个有颜色的外边框,图片某一部分的字体的颜色并发生改变 鼠标放上去之前 鼠标放上去之后: 实现的代码: <!DOC ...

  8. bsp开发之驱动开发

    驱动程序是可以管理虚拟设备或者物理设备,协议,服务等得软件模块,操作系统仅仅有通过驱动程序才干訪问硬件.针对windows ce开发设备驱动.就是通过platform builder创建一个新的平台, ...

  9. Collection接口和Collections类的简单区别和讲解

    这里仅仅进行一些简单的比较,如果你想要更加详细的信息话,请自己百度. 1.Collection: 是集合类的上层接口.本身是一个Interface,里面包含了一些集合的基本操作. Collection ...

  10. Cocoa root class

    问题来源: 常见面试问题之: NSObject和NSObject protocol有什么区别,为什么要有NSObject protocol, 有没有不继承自NSObject的类? 虽然在iOS开发过程 ...