我是靠谱客的博主 清秀彩虹,这篇文章主要介绍CF 1742C 题解 && P8557 炼金术(Alchemy) 题解CF 1742C 题解P8557 炼金术(Alchemy) 题解,现在分享给大家,希望可以做个参考。
温馨提示: 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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复