概述
温馨提示: color{#E74C3C}text{温馨提示:} 温馨提示:
遇见题解勿抄袭,棕名封号两行泪。 color{#E74C3C}text{遇见题解勿抄袭,棕名封号两行泪。} 遇见题解勿抄袭,棕名封号两行泪。
CF 1742C 题解
CF 题目传送门
洛谷 题目传送门
思路
我们模拟一下,就可以发现只要输入里有一行是8个 R
,那么答案即为 R
,因为如果答案是 B
的话,总有一列是全 B
的,就不会出现一行全是 R
的情况了。
Code text{Code} Code
#include <bits/stdc++.h>
using namespace std;
int a[101];
int main()
{
int t;cin>>t;
while (t--)
{
bool flag=0;
string s;
for (int i=1;i<=8;i++)
{
cin>>s;
if(count(s.begin(), s.end(), 'R')==8) flag=1; //计数
}
if(flag) printf("Rn");
else printf("Bn");
}
return 0;
}
AC 记录
P8557 炼金术(Alchemy) 题解
题目传送门
思路
我们观察一下样例和题目,发现它有两种情况:
-
它可能什么金属都不掉;
-
它可能掉金属。
又因为有 k k k 个熔炉,所以对于每一种金属,有 2 k 2^k 2k 种分配方法,而它有不可能一个熔炉都没有,所以要 − 1 -1 −1 ,即 2 k − 1 2^k-1 2k−1 种方法。这只是一种金属的,一共有 n n n 种,所以总共是 ( 2 k − 1 ) n (2^k-1)^n (2k−1)n 种方法。
观察数据发现 1 ≤ n , k ≤ 1 0 9 1 le n,k le 10^9 1≤n,k≤109 ,所以要用快速幂。
Code text{Code} Code
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod=998244353;
ll n,k;
ll ksm(ll x,ll y)//快速幂
{
ll ans=1;
while(y)
{
if(y&1) ans=ans*x%mod;
y>>=1;
x=x*x%mod;
}
return ans;
}
int main()
{
cin>>n>>k;
cout<<ksm((ksm(2,k)-1+mod)%mod,n)<<"n";
return 0;
}
The End text{The End} The End
最后
以上就是清秀彩虹为你收集整理的CF 1742C 题解 && P8557 炼金术(Alchemy) 题解CF 1742C 题解P8557 炼金术(Alchemy) 题解的全部内容,希望文章能够帮你解决CF 1742C 题解 && P8557 炼金术(Alchemy) 题解CF 1742C 题解P8557 炼金术(Alchemy) 题解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复