玩牌高手
标题:玩牌高手 | 时间限制:1秒 | 内存限制:32768K | 语言限制:不限
给定一个长度为n的整型数组,表示一个选手在n轮内可选择的牌面分数。选手基于规则选牌,请计算所有轮结束后其可以获得的最高总分数。选择规则如下:
1、在每轮里选手可以选择获取该轮牌面,则其总分数加上该轮牌面分数,为其新的总分数。
2、选手也可不选择本轮牌面直接跳到下一轮,此时将当前总分数还原为3轮前的总分数,若当前轮次小于等于3(即在第1、2、3轮选择跳过轮次),则总分数置为0。
3、选手的初始总分数为0,且必须依次参加每一轮。
while True:
try:
listinput = list(map(int, input().strip().split(',')))
count = 0
tmplist = []
for i in range(len(listinput)):
if i < 3:
count += listinput[i]
if count <= 0:
count = 0
tmplist.append(count)
else:
count += listinput[i]
if count >= tmplist[i-3]:
tmplist.append(count)
else:
count = tmplist[i-3]
tmplist.append(tmplist[i-3])
print(tmplist[-1])
except:
break
#include<bits/stdc++.h>
using namespace std;
vector<int>p;
int dp[100];
int main(){
int n;
while(1){
cin>>n;
p.push_back(n);
char c=getchar();
if(c=='\n')break;
}
dp[0]=max(0,p[0]);
for(int i=1;i<p.size();i++){
int pre;
if(i<3)pre=0;
else pre=dp[i-3];
dp[i]=max(dp[i-1]+p[i],pre);
}
cout<<dp[p.size()-1]<<endl;
}
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main(){
ll x,y;
cin>>x>>y;
ll sum=1;
while(y--)sum*=26;
if(sum>=x)cout<<1<<endl;
else{
int co=0;
while(sum<x){
sum*=10;
co++;
}
cout<<co<<endl;
}
}



