zoukankan      html  css  js  c++  java
  • 19-10-23-K-Aft

    没改完题就过来沽博客是不是有点好……

    ZJ一下:

    好好好题。

    T1数组大小……

    $$10^7 ightarrow 60$$

    事实上……

    $$7 imes 10^7 ightarrow 0$$

    $kuku$

    重点是,我还开了$7 imes 10^7$个 vector 

    一定要检查检查代码,一定要!不要因为数组开小挂部分分,也不要因为数组开大挂全部分

    $huge QAQ$

    44
    Miemeng 0
    03:12:34
    8
    03:12:37
    30
    03:12:36
    38
    03:12:37

    T1

    「NOIP2016」蚯蚓

    因为$log$会被卡,于是直接开$B$个队列,这样通过向队尾增加元素来维护单调。

    这样就直接优化掉一个$log$

    复杂度:$Theta(KB)$

    (直接开$7 imes 10^7$的就行,作者是不会叫你MLE的=。=)

    #include <iostream>
    #include <climits>
    #include <cstring>
    #include <cstdio>
    #define B 17
    #define LL unsigned long long
    #define N 11111111
    
    using namespace std;
    
    const LL pri[B]={0,2,3,5,7,11,13,17,19,23,29,31,37,41,43,47};
    template<typename Tp>
    class Myqueue{
    	Tp A[N];int f,b;
    	public:
    	Myqueue(){f=b=0;}
    	void clear(){f=b=0;}
    	void push(const Tp k){A[b++]=k;}
    	void pop(){f++;}
    	Tp front(){return A[f];}
    	bool empty(){return f==b;}
    	void pour(){
    		puts("------------");
    		for(int i=f;i<b;i++)
    			cout<<A[i]<<" ";
    		cout<<endl;
    		puts("------------");
    	}
    };
    int kth,b;
    Myqueue<LL>qs[B];
    void prerun(){
    	for(int i=1;i<=b;i++)qs[i].push(pri[i]);
    }
    main(){
    	cin.sync_with_stdio(false);
    	cin>>b>>kth;
    	prerun();
    	int cnt=1;
    	LL minn;
    	while(cnt<kth){
    //		if(cnt>850000)
    		for(int i=1;i<=b;i++){
    			cout<<pri[i]<<":
    ";
    			qs[i].pour();
    		}
    		minn=LLONG_MAX;
    		int id;
    		for(int i=1;i<=b;i++){
    			if(!qs[i].empty()&&minn>qs[i].front()){
    				minn=qs[i].front();
    				id=i;
    			}
    		}
    		qs[id].pop();
    		cnt++;
    		for(int i=id;i<=b;i++){
    			qs[i].push(minn*pri[i]);
    		}
    	}
    	cout<<minn<<endl;
    }
    

    T2

    没有过,

    但是可以传($zhugrave{a}n$)达题解思想。

    首先使用记忆化搜索,

    状态由两部分组成,

    当前队列中总共有的质因子情况,

    有共同因子的数在质因子层面上的数对情况。

    用第二个来保证不会有三个数有共同的质因子。

    (说实话我不会)

    T3

    又没有过

    很神奇的一道题,因为有错的,但不超过$1 over 2$

    于是使用随机化,每两个坐标对可以求出一组可能解。

    $check$一下,尝试$50$次,

    非酋全没找到正解的概率$(frac{3}{4})^{50} approx 0.000000566$

  • 相关阅读:
    ubuntu 12.04 配置双屏幕教程
    window打开服务的dos命令
    ffmpeg 视频转换和截图 方法
    pycharm
    Django mptt介绍以及使用
    浅谈Python Web框架
    activity 的属性android:taskAffinity和android:allowTaskReparenting
    android TranslateAnimation动画详解
    Android中Activity启动模式详解
    android:descendantFocusability用法简析
  • 原文地址:https://www.cnblogs.com/kalginamiemeng/p/Exam20191023-Aft.html
Copyright © 2011-2022 走看看