当前位置:网站首页>Arc135 a (time complexity analysis)
Arc135 a (time complexity analysis)
2022-07-04 05:35:00 【Find a derivative first】
subject
The question : take x decomposition , Make the product of all numbers after decomposition reach the maximum . about x, It can be broken down into x/2( Round up ) and x/2( Round down )
Ideas : Memory search . When x<=4, Don't divide . otherwise , Keep dividing .
Time complexity : O(logX) or O(logX * loglogX)
use unordered_map
hypothesis n = 2 ^ k,T(n) = T(n/2)+1.T(n) = k = logn
hypothesis n != 2^k, 2^k-1 <= n < 2^k, It can be proved that at most 2k Time f(x),T(n) < 2 * (log(x)+1) = O(log(x)).
If the map
It takes time to memorize logn Time for ,n At most 2(log(x)+1).logn As mentioned above loglogX Time .
Code :
// Problem: A - Floor, Ceil - Decomposition
// Contest: AtCoder - AtCoder Regular Contest 135
// URL: https://atcoder.jp/contests/arc135/tasks/arc135_a
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<complex>
#include<cstring>
#include<cmath>
#include<vector>
#include<map>
#include<unordered_map>
#include<list>
#include<set>
#include<queue>
#include<stack>
#define OldTomato ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr)
#define fir(i,a,b) for(int i=a;i<=b;++i)
#define mem(a,x) memset(a,x,sizeof(a))
#define p_ priority_queue
// round() rounding ceil() Rounding up floor() Rounding down
// lower_bound(a.begin(),a.end(),tmp,greater<ll>()) First less than or equal to
// #define int long long //QAQ
using namespace std;
typedef complex<double> CP;
typedef pair<int,int> PII;
typedef long long ll;
// typedef __int128 it;
const double pi = acos(-1.0);
const int INF = 0x3f3f3f3f;
const ll inf = 1e18;
const int N = 2e5+10;
const int M = 1e6+10;
const int mod = 998244353;
const double eps = 1e-6;
inline int lowbit(int x){
return x&(-x);}
template<typename T>void write(T x)
{
if(x<0)
{
putchar('-');
x=-x;
}
if(x>9)
{
write(x/10);
}
putchar(x%10+'0');
}
template<typename T> void read(T &x)
{
x = 0;char ch = getchar();ll f = 1;
while(!isdigit(ch)){
if(ch == '-')f*=-1;ch=getchar();}
while(isdigit(ch)){
x = x*10+ch-48;ch=getchar();}x*=f;
}
#define int long long
int n,m,k,T;
map<int,int> mp;
int fun(int x)
{
if(x<=4)
{
return x;
}
if(mp[x]) return mp[x];
if(x&1) return mp[x] = fun(x/2) * fun((x+1)/2) % mod;
else return mp[x] = fun(x/2) * fun(x/2) % mod;
}
void solve()
{
read(n);
write(fun(n)); puts("");
}
signed main(void)
{
T = 1;
// OldTomato; cin>>T;
// read(T);
while(T--)
{
solve();
}
return 0;
}
边栏推荐
- Graduation design of small programs -- small programs of food and recipes
- With the advent of the IP era, how can E-sports hotels take advantage of the "east wind" of games?
- [matlab] general function of communication signal modulation inverse Fourier transform
- [技术发展-25]:广播电视网、互联网、电信网、电网四网融合技术
- Simulink and Arduino serial port communication
- VB. Net simple processing pictures, black and white (class library - 7)
- XII Golang others
- 2022 question bank and answers for safety management personnel of hazardous chemical business units
- 简易零钱通
- Canoe panel learning video
猜你喜欢
随机推荐
JS string splicing enhancement
Write a complete answer applet (including single choice questions, judgment questions and multiple topics) (III) single choice questions, judgment questions, and the first question display
Simulink与Arduino串口通信
Notepad++ -- display related configurations
[matlab] matlab simulates digital baseband transmission system - digital baseband transmission system
ping端口神器psping
光模块字母含义及参数简称大全
Unity is connected to the weather system
Unity2d -- character moves and turns
IP时代来临,电竞酒店如何借好游戏的“东风”?
Just do it with your hands 7 - * project construction details 2 - hook configuration
724. Find the central subscript of the array
2022 R2 mobile pressure vessel filling retraining question bank and answers
LM small programmable controller software (based on CoDeSys) note XXI: error 3703
VB.net 调用FFmpeg简单处理视频(类库——6)
Analysis of classical pointer and array written test questions in C language
补某视频网站的js,进行视频解密
JS string splicing
[技术发展-25]:广播电视网、互联网、电信网、电网四网融合技术
Simulink and Arduino serial port communication