百合花(Lily)是一种美丽的花。她通常一年只开一次花,所以如果你看到百合花盛开,它会非常珍贵。然而,她对猫有剧毒,所以你必须注意让好奇的猫远离可爱的百合花。
你有n个网格的土壤土地排成一行,从1到n,其中一些是百合花。我们不想伤害百合,也不想伤害猫。你可以在网格上放一些猫粮,但对于任何有猫粮的网格i,在区域[i−1,i+1]不得含有百合花。你喜欢猫和百合,所以你想最大限度地增加有猫粮的格子。
设计满足上述要求的计划。
输入格式:
有一个整数n(1≤n≤1000)表示网格的数量。
第二行包含仅由“L”和“.”组成的字符串R,表示有和没有百合花的格子。
输出格式:
输出包含一行,字符串R′仅由“L”、“”组成和“C”,其中“C”表示在满足上述要求的同时分配给R中空网格的猫粮。
输入样例:
在这里给出一组输入。例如:
5
..L..
输出样例:
在这里给出相应的输出。例如:
C.L.C
二分答案,先二分出放猫粮的格子的数量,再验证放这么多数量的猫粮是否可行
#include
using namespace std;
int n;
char a[1010],b[1010];
void coutt()
{for (int i=1;i<=n;i++) cout<int cnt=0;for (int i=1;i<=n;i++) b[i]=a[i];for (int i=1;i<=n;i++) {if (b[i+1]!='L'&&b[i-1]!='L'&&b[i]!='L'){b[i]='C';cnt++;} if (cnt>=k) return true; }return false;
}
void half(int l,int r)
{while (l+1int mid=(l+r)/2;if (check(mid)==true) l=mid;else r=mid;} if (check(r)==true) coutt();else {check(l);coutt();} return ;
}
int main()
{cin>>n;for (int i=1;i<=n;i++) cin>>a[i];half(0,n);return 0;
}
给出两个不超过1000位的十六进制数a,b。
求a∗b的值
输入格式:
输入共两行,两个十六进制的数
输出格式:
输出一行,表示a∗b
输入样例:
在这里给出一组输入。例如:
1BF52
1D4B42
输出样例:
在这里给出相应的输出。例如:
332FCA5924