当前位置:网站首页>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;
}
边栏推荐
- [technology development -25]: integration technology of radio and television network, Internet, telecommunication network and power grid
- 【雕爷学编程】Arduino动手做(105)---压电陶瓷振动模块
- Automated testing selenium foundation -- webdriverapi
- 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
- Analysis of classical pointer and array written test questions in C language
- [matlab] matlab simulates digital baseband transmission system eye diagram of bipolar baseband signal (class I part response waveform)
- [matlab] matlab simulates digital bandpass transmission system ask, PSK, FSK system
- LM小型可编程控制器软件(基于CoDeSys)笔记二十一:错误3703
- TCP state transition diagram
- Yyds dry goods inventory TCP & UDP
猜你喜欢
Canoe panel learning video
ansys命令
1480. Dynamic sum of one-dimensional array
VB.net 简单的处理图片,黑白(类库——7)
Programmers don't talk about morality, and use multithreading for Heisi's girlfriend
BUU-Crypto-[GXYCTF2019]CheckIn
Evolution of system architecture: differences and connections between SOA and microservice architecture
LabVIEW错误对话框的出现
2022G2电站锅炉司炉特种作业证考试题库及答案
c语言经典指针和数组笔试题解析
随机推荐
flink1.13 sql基础语法(一)DDL、DML
Flutter calls Gaode map app to realize location search, route planning and reverse geocoding
c语言经典指针和数组笔试题解析
Principle and practice of common defects in RSA encryption application
Simulink与Arduino串口通信
[paper summary] zero shot semantic segmentation
BUU-Pwn-test_ your_ nc
ping端口神器psping
空洞卷积、可变形卷积、可变形ROI Pooling
Flask
Flask
Programmers don't talk about morality, and use multithreading for Heisi's girlfriend
简易零钱通
Flutter ‘/usr/lib/libswiftCore. dylib‘ (no such file)
C语言简易学生管理系统(含源码)
[MySQL practice of massive data with high concurrency, high performance and high availability -8] - transaction isolation mechanism of InnoDB
Notepad++--显示相关的配置
Supplement the JS of a video website to decrypt the video
Thread pool: use thread pool to optimize query speed
left_and_right_net可解释性设计