zoukankan      html  css  js  c++  java
  • 20190918

    918……

    预审:

    T1

    枚举子集???3^N

    T2

    16MB……像数学题……A是开不下的……

    总之T2是只能开个M的数组

    T3

    反复亦或的话……没想法

    过程:

    T1

    先$mod$一下$n$

    然后排个序?

    有$0$直接出,要不两头扫

    仿佛对

    先考虑更靠近$0,N$的

    用另一个去填。

    仿佛出锅了……

    目前仿佛是:

        在有序的数组里前缀和可以得出正确的ans

        目前来看,仿佛无解还真做不到……

        无论如何都有解?

        于是又无聊写了单调栈……

    证明:

    前缀和在mod n 意义下有n种情况

    1. 有 0,直接输出

    2. 无 0,则还剩n-1 种情况,由抽屉原理可知必有至少两个相等.

    于是一定有一个合法区间。

        故此题一定有解。

        (于是也可以 O(N) 过了)

        马上改桶,单调栈爆了……

        又快又好QwQ

    关于对拍:

    写个××暴力,写spj就可以了啊=。=

    附一个用 fstream 和 mt19937 写的,要开C++11编译……

    #include <bits/stdc++.h>
    #define N 100000
    #define M 1111111
    using namespace std;
    int arr[M],nn,an;
    bool che[M];
    mt19937 rr(time(0));
    bool check(){
    	fstream dat;
    	dat.open("1.in",ios_base::in);
    	dat>>nn;
    	for(int i=1;i<=nn;i++){
    		dat>>arr[i];
    	}
    	dat.close();
    	fstream ans;
    	ans.open("1.out",ios_base::in);
    	ans>>an;
    	if(an==-1){
    		cout<<"-1-1-1-1-1-1-1-1-1-1-"<<endl;
    		exit(0);
    	}
    	int ansc=0,b;
    	memset(che,0,sizeof che);
    	for(int i=1;i<=an;i++){
    		ans>>b;
    		if(che[b]==1)return 0;
    		ansc+=arr[b];
    		che[b]=1;
    		ansc%=nn;
    	}
    	return ansc==0;
    }
    void Ran(){
    	fstream ran;
    	ran.open("1.in",ios_base::out);
    	int n=10000;
    	ran<<n<<endl;
    	for(int i=1;i<=n;i++)
    		ran<<int(rr()%1000000000+1)<<" ";
    	ran.close();
    }
    int main(){
    	int T=N;
    	while(T--){
    		Ran();
    		system("time ./T");
    		if(!check()){
    			puts("WA----------------QnQ");
    			return 0;
    		}
    		cout<<T<<"/"<<N;puts("AcA QvQ");
    	}
    }
    /*
    g++ dp.cxx -o dp
    g++ T1.cpp -o T
    ls
    ./dp
    */
    

    T2

    $A[i]=X[i]*pow(Y[i],count[i])+Z[i]+Y[i]*Z[i]+...+pow(Y[i],count[i]-1)*Z[i] mod {2^{K-1}}$

    后面就可以提一个$Z[i]$,然后用$(1-Y[i]^n)*1/1-Y[i] ext{     }or ext{     } nY[i]$求……

    做到了$log$求$A$?

    维护$count$前缀和?

    一波乱搞,

    发现前两个$subtask$可以开出来$A$

    hiahiahia

    然后一波容斥判断。

    T3

    只会暴力,10%

    结果:

    14
    Miemeng 100
    03:13:30
    0
    03:17:12
    10
    03:13:43
    110
    03:17:12
  • 相关阅读:
    sql server 查看锁表SQL【转】
    Delphi 使用TAdoQuery执行存储过程的样例
    Delphi调用MSSQL存储过程返回的多个数据集的方法
    cxGrid类似pagecontrol的效果
    sqlserver trigger(触发器)-更新某几列数据时触发【转】
    FormatFloat 格式化浮点数
    TADOConnection.Close
    cxVerticalGrid
    Delphi中比较两个对象是否一致及地址是否相同[转]
    Linux学习-分析登录档
  • 原文地址:https://www.cnblogs.com/kalginamiemeng/p/Exam20190918.html
Copyright © 2011-2022 走看看