#include<bits/stdc++.h>
using namespace std;
//1.
// 1 4 16 64 硬币 1024 纸币
// 200
// 17
void count_dp(int *dp,int i){
dp[i]=dp[i-1]+1;
if(i>=4) dp[i]=min(dp[i-4]+1,dp[i]);
if(i>=16) dp[i]=min(dp[i-16]+1,dp[i]);
if(i>=64) dp[i]=min(dp[i-64]+1,dp[i]);
}
int main(){
int n;
scanf("%d",&n);
int m=1024-n;
printf("%d",m);
int *dp=new int[m];
//int res=check(m,dp);
cout<<"start"<<endl;
dp[0]=0;
for(int i=1;i<=m;++i){
count_dp(dp,i);
cout<<i<<" dp "<<dp[i]<<endl;
}
printf("%d",dp[m]);
return 0;
}
//2.AAA->A AABB->AAB AABBCC->AABCC
//
//helloo woooow
//hello woow
char s[101010];
bool check()
{
int len = strlen(s);
bool flag = false;
for(int i=2;i<len;i++)
if(s[i] == s[i-1] && s[i-1] == s[i-2])
flag = true;
for(int i=3;i<len;i++)
if(s[i] == s[i-1] && s[i-2] == s[i-3])
flag = true;
if(flag)
{
int cnt = 2;
for(int i=2;i<len;i++)
{
if(s[i] == s[cnt-1] && s[cnt-1] == s[cnt-2])
continue;
else
s[cnt++] = s[i];
}
s[cnt] = '\0';
len = cnt;
cnt = 3;
for(int i=3;i<len;i++)
{
if(s[i] == s[cnt-1] && s[cnt-2] == s[cnt-3])
continue;
else
s[cnt++] = s[i];
}
s[cnt] = '\0';
}
return flag;
}
int main(){
int _;
scanf("%d",&_);
while(_--)
{
scanf("%s", s);
while(check());
printf("%s\n", s);
}
return 0;
}
//3.ÀñÎï
// 2
// 2
// 1 2
//4
// 1 2 3 3
//output
//3
//8
int a[100050];
int p[100050];
int _;
int n;
int main(){
scanf("%d",&_);
while(_--){
int res=0;
scanf("%d",&n);
for(int i=0;i<n;++i){
scanf("%d",&a[i]);
p[i]=1;
}
a[n]=a[0];
p[n]=1;
bool flag=true;
while(flag){
flag=false;
for(int i=1;i<n;++i){
if(a[i]>a[i-1]&&p[i]<=p[i-1]){
p[i]=p[i-1]+1;
flag=true;
}
//printf("%d\n",p[i]);
}
p[0]=p[n];
for(int i=n;i>0;i--){
if(a[i]<a[i-1]&&p[i]>=p[i-1]){
p[i-1]=p[i]+1;
flag=true;
}
//printf("%d\n",p[i]);
}
p[0]=p[n];
}
for(int i=0;i<n;++i){
//printf("%d",p[i]);
res+=p[i];
}
printf("%d",res);
}
return 0;
}
//4.
// 3 4
// 3 5 4
// 2.5
const int N = 1e5+100;
double a[N];
int n,m;
bool check(double mid)
{
long long ans = 0;
for(int i=1;i<=n;i++)
{
//printf("%.2f %.2f\n",a[i], mid);
ans += (long long)(a[i]/mid);
if(ans >= m)
{
//printf("%lld %.2f\n",ans, mid);
return true;
}
}
//printf("%lld %.2f\n",ans, mid);
return false;
}
int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
for(int i=1;i<=n;i++)
scanf("%lf",&a[i]);
double low = 1e-6, high = 1e9, ans = low;
while(high - low >=0)
{
double mid = (low+high)/2;
if(check(mid))
low = mid + 1e-6, ans = mid;
else
high = mid - 1e-6;
}
printf("%.2f\n",ans);
}
return 0;
}
头条2019
最新推荐文章于 2020-04-29 23:32:46 发布