2020.11.20NOIP模拟T1 简单题
题意
解析
我就是傻瓜本傻,最简单的一道题,一来看错题目,扫了一眼以为是求最后的,除了暴力之外想不到任何做法,还以为有循环之类的东西(实际上根本没有),然后就放弃了。
后面做完再看这道题,发现只用求,而且发现无论怎样操作,三个数的和都不变,所以很快列出了以下式子:
然后我似乎是对那个什么循环有执念似的,非觉得可以找循环节,然而并不能证明循环节很短哦(说实话我考试想到了这个,但是没有在意这个证明,毕竟我不会证的结论海了去了),所以复杂度可能会飙很高,然后光荣地掉。
正确的打开方式是:你仔细观察那个式子,(把条件移项移成会明显一点)你发现这玩意儿的本质是,所以就把两种操作统一起来了,做次操作最后的答案就是
►Code View
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector>
#include<map>
using namespace std;
#define LL long long
#define N 2000005
#define INF 0x3f3f3f3f
LL rd()
{
LL x=0,f=1;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-1; c=getchar();}
while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48); c=getchar();}
return f*x;
}
LL MOD;
LL ksm(LL a,LL b)
{
LL res=1ll;
while(b)
{
if(b&1) res=res*a%MOD;
a=a*a%MOD;
b>>=1;
}
return res;
}
int main()
{
freopen("easy.in","r",stdin);
freopen("easy.out","w",stdout);
int T=rd();
while(T--)
{
LL a=rd(),b=rd(),c=rd(),k=rd();
MOD=a+b+c;
LL ans=ksm(2,k)*c%MOD;
printf("%lld\n",ans);
}
return 0;
}
/*#include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector>
#include<map>
using namespace std;
#define LL long long
#define N 2000005
#define INF 0x3f3f3f3f
LL rd()
{
LL x=0,f=1;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-1; c=getchar();}
while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48); c=getchar();}
return f*x;
}
map<LL,int> vis;//上一次出现的位置
LL ans[N];
int main()
{
freopen("easy.in","r",stdin);
freopen("easy.out","w",stdout);
int T=rd();
while(T--)
{
LL a=rd(),b=rd(),c=rd(),k=rd(),len;
LL sum=a+b+c;
vis.clear();
vis[c]=0;
ans[0]=c;
int pos=0;
while(1)
{
if(sum-c<=c) c=2*c-sum;
else c=2*c;
if(vis[c])
{
len=pos-vis[c]+1;
break;
}
vis[c]=++pos;
ans[pos]=c;
}
if(k<=vis[c]-1)
{
printf("%lld\n",ans[k]);
continue;
}
k-=(vis[c]-1);
int r=k%len;
if(r==0) r=len;
printf("%lld\n",ans[vis[c]+r-1]);
}
return 0;
}*/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现