• 牛客小白月赛23


    原题链接

    题外话

    中文题, 就不说题意了,大家都能看明白

    B

    B思路

    其实我们只要考虑一件事,这道题就解决了, 因为要让n的阶层是p的倍数, 所以n的阶层里一定存在p所有的因数,然后在考虑极端一点, p的一些因数都是可以用质因数表示, 所以其实只要把p的所有质因数求出来就行了
    最后在二分查找最小拥有所有p的质因数的n就行了

    B代码

    ///*
    //正在播放《フリージア》
    //1:21  ━━━━━━●─────   5:35
    //   ?   ?   ??   ?   ?
    //```````'`...```````''`````````````'````````````````'`.`''
    //```````''..`';;'```''```'''''''''''''`````````````````'':
    //.````''''':;;!!:````'````'''''''''''``````````````````'':
    //``''''''':;;;;;'```'``````''```````````____________```'':
    //`````````:;;!;'```````````'```````'```|   所以说   |'``'':
    //```````'|$&$%:````````````'```````````|不要停下来啊|''''':
    //````'''!$&&&|'```````````'''::''::''''/ (指AC)  |':'':::
    //````'':|&&&$!'`````'''''''::.....`;!;'/_________|''``'::
    //  ....'|&&@$!'........```:!;'....`:;:```````````````````'
    //..````;$&&&$!:''``````'':|%%!::;|%$$!::::::::''::::::::::
    //``````!&&@&&|:'````````':|$$$$$$$$$|:':::::::::::::::::::
    //`````:%&@@@@@@@@&&&@@@@&&&&@@@@@@@&&&|::::::::':::::::::;
    //`````.```':|$@@@@@@@@@@@@@@@@@@@@@@@@###@@&&$|;:::'::::::
    //````````````';|$&@@@@@@@@@###@@@@@@########@@@@$!''''::::
    //`````````..````:|%$@@@@@#########@#########@@@@&!''''::::
    //`````````````````:|&########################@@@$;::::::::
    //``````````````````:!$@########################@%;:::'::::
    //``````````..``````':|&#######################@@&!''''''::
    //''''::'''`.`''''''':|@#######################@@&|:'`.`';!
    //:::::::::``'''''';%@######################@@##@@&!::'';;;
    //::;::::::`.''''';%@@@@####################$%@##@@%;:'':;!
    //:;;;;::::``':;%@@@#########################&%&##@@|:'';;!
    //;;!;;;;;;'`::;%@#############################@@##@$!'';!!
    //;;;;;;;;:``':::::;|$@############################@$!'`;!!
    //::;;;;;;:'`'::::::;!$@#######################&&@$$$;``:;;
    //`````````..````````'|@#####################$;!$$$&@@|''':
    //'''''''''''''':'''''|@#########@&@##########@@####@@&%|!!
    //''''''''':'''::'':''!&########&!|&@##########&&####&%|!||
    //:::::'''::::::::::::!&########|:;|$@#########@&###&%||||!
    //:::::::'''''':::::::!&#######@!:;!!$@########@$&##@%||||!
    //
    //                    だからよ...止まるじゃねえぞ
    // */
    
    
    
    
    #include <vector>
    #include <algorithm>
    #include <string>
    #include<cstring>
    #include <iostream>
    #include <set>
    #include <map>
    #include <stack>
    #include <queue>
    #include <unordered_map>
    #include <bitset>
    #include <cassert>
    #include <chrono>
    #include <random>
    #include <iomanip>
    #include <unordered_set>
    #include <ctime>
    #include <chrono>
    using namespace std;
    // #define  ll long long
    const int N =1e6+10;
    #define PII pair<int , int > 
    #define all(x) (x).begin(),(x).end()
    #define rall(x) (x).rbegin(),(x).rend()
    #define pb push_back
    #define sz(x) (int)(x).size()
    typedef long long ll;
    typedef long double ld;
    mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
    int n , m ,t ;
    #define __i __int128
    int zhi[100010], yin[100010];
    bool check(int x , int k){
    	int t = x;
    	for(int i=0 ;i<k;i++){
    		t =x ;int num =0 ;
    		while(t )num+=t/zhi[i], t/=zhi[i];
    		if(num<yin[i])return false ;
    	}
    	return true ;
    }
    
    int arr[100010];
    int main(){
        ios::sync_with_stdio(0);
        cin.tie(0), cout.tie(0);
        cin >>n;
        while(n--){
        	int t,r;cin >>t;    	r = t;
        	int cnt =0 ;
        	memset(zhi,0,sizeof zhi);
        	memset(yin,0,sizeof yin);
        	for(int i=2 ;i<=t/i;i++){
        		if(t%i==0){
        			while(t%i==0){
        				t/=i;
        				zhi[cnt] = i;
        				yin[cnt]++;
    				}
    				cnt ++ ;
    			}
    		}
    		if(t!=1)zhi[cnt]= t, yin[cnt] =1 ,cnt ++ ;
    		int l=1  ;
    		while(l<r ){
    			int mid = r+l >>1 ;
    			if(check(mid, cnt))r =mid;
    			else l =mid +1 ;
    		}
    		cout<<r<<endl;
    	}
        return 0;
    
    }
    
    

    C

    C思路

    首先,要明白什么是连通分量(上学期刚做完的笔记啊,混蛋,怎么现在就忘了),建议百度,然后会发现,每次多一个连通分量的前提是,多出现一个孤立的点,所以画图你会得出结论, 每次多出来一个连通分量,意味着多n- i(n代表一共所有的点, i代表当前总共的连通分量),这个题唯一的坑点就是数据有点太大了(10^18),直接用得出来的结论会爆掉, 此时有两种方法
    - 使用__int128
    - 转换一下结论, (我使用的是第二种方案),其实就是除一下就好了具体转换的结果在代码里, 就不多说了

    C代码

    //第一种二分的方法
    #include <bits/stdc++.h>
    #include <ext/pb_ds/assoc_container.hpp>
    #include <ext/pb_ds/tree_policy.hpp>
    #define iinf 0x3f3f3f3f
    #define linf (1ll<<60)
    #define eps 1e-8
    #define maxn 1000010
    #define maxe 1000010
    #define cl(x) memset(x,0,sizeof(x))
    #define rep(i,a,b) for(i=a;i<=b;i++)
    #define drep(i,a,b) for(i=a;i>=b;i--)
    #define em(x) emplace(x)
    #define emb(x) emplace_back(x)
    #define emf(x) emplace_front(x)
    #define fi first
    #define se second
    #define de(x) cerr<<#x<<" = "<<x<<endl
    #define __i __int128
    using namespace std;
    using namespace __gnu_pbds;
    typedef long long ll;
    typedef pair<int,int> pii;
    typedef pair<ll,ll> pll; 
    
    ll read(ll x=0)
    {
        ll c, f(1);
        for(c=getchar();!isdigit(c);c=getchar())if(c=='-')f=-f;
        for(;isdigit(c);c=getchar())x=x*10+c-0x30;
        return f*x;
    }
    ll n , k ;
    int ar[1000010];
    int  br[100010];
    ll res =0 ;
    
    int main()
    {
       ll t ;t= read() ;
       while(t--){
       	n =read() , k =read();
        ll l =1 , r =n;
        while(l<r){
        	ll mid =(l+r)>>1;
        	if(2*n-mid -1 >2*k/mid)r =mid   ;
        	else l =mid +1 ;
    	}
    	cout<<l<<endl;
    }
        return 0;
    }
    
    
    //第二种二分的方法
    #include <bits/stdc++.h>
    using namespace std;
    typedef long long ll;
    int main()
    {
        int t;cin>>t;
        while(t--){
            ll n,m;cin>>n>>m;
            ll l=0,r=n-1;
            while(l<r){
                ll mid=(l+r+1)>>1;//+1是为了防止l=r-1时的不断循环
                if(2*n-mid-1<=2*m/mid) l=mid;
                else r=mid-1;
            }
            cout<<l+1<<"
    ";
        }
        return 0;
    }
    

    E

    E思路

    我个人觉得挺坑的, 我一开始想暴力做来着,,具体也没啥,要是想证明的话,就是因为,每一个数都能找出对应的点,与之得出答案(反正我不是搞数论的,随便口胡一下。。)

    E代码

    n =input()
    print("4294967296")
    

    G

    G思路

    一开始想麻烦了 , 这个题,如果画图的话,就很清晰了(说明里面的就是坑人玩的)
    就是求每条边被用了多少次,实际上就是这条边的两端节点个数的乘积,所以在dfs求出sz之后,每条边的使用次数就是 sz*(n-sz),排个序即可。——————引自官方题解

    G代码

    ///*
    //正在播放《フリージア》
    //1:21  ━━━━━━●─────   5:35
    //   ?   ?   ??   ?   ?
    //```````'`...```````''`````````````'````````````````'`.`''
    //```````''..`';;'```''```'''''''''''''`````````````````'':
    //.````''''':;;!!:````'````'''''''''''``````````````````'':
    //``''''''':;;;;;'```'``````''```````````____________```'':
    //`````````:;;!;'```````````'```````'```|   所以说   |'``'':
    //```````'|$&$%:````````````'```````````|不要停下来啊|''''':
    //````'''!$&&&|'```````````'''::''::''''/ (指AC)  |':'':::
    //````'':|&&&$!'`````'''''''::.....`;!;'/_________|''``'::
    //  ....'|&&@$!'........```:!;'....`:;:```````````````````'
    //..````;$&&&$!:''``````'':|%%!::;|%$$!::::::::''::::::::::
    //``````!&&@&&|:'````````':|$$$$$$$$$|:':::::::::::::::::::
    //`````:%&@@@@@@@@&&&@@@@&&&&@@@@@@@&&&|::::::::':::::::::;
    //`````.```':|$@@@@@@@@@@@@@@@@@@@@@@@@###@@&&$|;:::'::::::
    //````````````';|$&@@@@@@@@@###@@@@@@########@@@@$!''''::::
    //`````````..````:|%$@@@@@#########@#########@@@@&!''''::::
    //`````````````````:|&########################@@@$;::::::::
    //``````````````````:!$@########################@%;:::'::::
    //``````````..``````':|&#######################@@&!''''''::
    //''''::'''`.`''''''':|@#######################@@&|:'`.`';!
    //:::::::::``'''''';%@######################@@##@@&!::'';;;
    //::;::::::`.''''';%@@@@####################$%@##@@%;:'':;!
    //:;;;;::::``':;%@@@#########################&%&##@@|:'';;!
    //;;!;;;;;;'`::;%@#############################@@##@$!'';!!
    //;;;;;;;;:``':::::;|$@############################@$!'`;!!
    //::;;;;;;:'`'::::::;!$@#######################&&@$$$;``:;;
    //`````````..````````'|@#####################$;!$$$&@@|''':
    //'''''''''''''':'''''|@#########@&@##########@@####@@&%|!!
    //''''''''':'''::'':''!&########&!|&@##########&&####&%|!||
    //:::::'''::::::::::::!&########|:;|$@#########@&###&%||||!
    //:::::::'''''':::::::!&#######@!:;!!$@########@$&##@%||||!
    //
    //                    だからよ...止まるじゃねえぞ
    // */
    
    
    
    
    #include <vector>
    #include <algorithm>
    #include <string>
    #include<cstring>
    #include <iostream>
    #include <set>
    #include <map>
    #include <stack>
    #include <queue>
    #include <unordered_map>
    #include <bitset>
    #include <cassert>
    #include <chrono>
    #include <random>
    #include <iomanip>
    #include <unordered_set>
    #include <ctime>
    #include <chrono>
    #include <bits/stdc++.h>
    #include <ext/pb_ds/assoc_container.hpp>
    #include <ext/pb_ds/tree_policy.hpp>
    #define iinf 0x3f3f3f3f
    #define linf (1ll<<60)
    #define eps 1e-8
    #define maxn 1000010
    #define maxe 1000010
    #define cl(x) memset(x,0,sizeof(x))
    #define rep(i,a,b) for(i=a;i<=b;i++)
    #define drep(i,a,b) for(i=a;i>=b;i--)
    #define em(x) emplace(x)
    #define emb(x) emplace_back(x)
    #define emf(x) emplace_front(x)
    #define fi first
    #define se second
    #define de(x) cerr<<#x<<" = "<<x<<endl
    using namespace std;
    using namespace __gnu_pbds;
    typedef long long ll;
    typedef pair<int,int> pii;
    typedef pair<ll,ll> pll;
    using namespace std;
    // #define  ll long long
    const int N =1e6+10;
    #define PII pair<int , int > 
    #define all(x) (x).begin(),(x).end()
    #define rall(x) (x).rbegin(),(x).rend()
    #define pb push_back
    #define sz(x) (int)(x).size()
    typedef long long ll;
    typedef long double ld;
    mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
    ll n , m ,t ;
    
    #define __i __int128
    //ll mod = 1e9+7;
    int e[N] , ne[N] , h[N],idx ;
    int ar[N];
    void add(int a ,int b){
    	e[idx] = b, ne[idx]=h[a] , h[a]= idx++;
    }
    map<int ,int > mp;
    void dfs(int x ,int fa){
    	mp[x]=1 ;
    	for(int i=h[x];i!=-1 ;i=ne[i]){
    		int j =e[i];
    		if(j !=fa){
    			dfs(j,x);
    			mp[x] +=mp[j];
    		//	cout<<mp[x]<<endl;
    		}
    	}
    //	ar[x-1]= (ll)mp[x]*(n-mp[x]);
    }
    vector<ll> lis;
    ll f[100010];
    int main(){
        ios::sync_with_stdio(0);
        cin.tie(0), cout.tie(0);
        cin >>n;
        memset(h, -1 ,sizeof h);
        for(int i=0;i<n-1 ;i++){
        	int a, b ;cin >>a>>b;
        	add(a,b) ;add(b,a);
    	}
    
    	dfs(1, 0);
    	int i;
     	rep(i,1,n)lis.emb(mp[i]*(n-mp[i]));
        sort(lis.begin(),lis.end());
        ll ans=0;
        rep(i,1,n-1)ans+=(n-i)*lis[i];
    	cout<<ans<<endl;
        return 0;
    
    }
    

    H

    H思路

    其实一读完题,就应该明白一件事,就是
    - 如果能总的加起来能超过(2^30),那么一定存在一种方式,
    - 反之, impossible
    剩下的事情就是从大到小拍个序存一下就行了
    (明白了vector排序很慢这一事实, pair的都比他快TAT)

    H代码

    ///*
    //正在播放《フリージア》
    //1:21  ━━━━━━●─────   5:35
    //   ?   ?   ??   ?   ?
    //```````'`...```````''`````````````'````````````````'`.`''
    //```````''..`';;'```''```'''''''''''''`````````````````'':
    //.````''''':;;!!:````'````'''''''''''``````````````````'':
    //``''''''':;;;;;'```'``````''```````````____________```'':
    //`````````:;;!;'```````````'```````'```|   所以说   |'``'':
    //```````'|$&$%:````````````'```````````|不要停下来啊|''''':
    //````'''!$&&&|'```````````'''::''::''''/ (指AC)  |':'':::
    //````'':|&&&$!'`````'''''''::.....`;!;'/_________|''``'::
    //  ....'|&&@$!'........```:!;'....`:;:```````````````````'
    //..````;$&&&$!:''``````'':|%%!::;|%$$!::::::::''::::::::::
    //``````!&&@&&|:'````````':|$$$$$$$$$|:':::::::::::::::::::
    //`````:%&@@@@@@@@&&&@@@@&&&&@@@@@@@&&&|::::::::':::::::::;
    //`````.```':|$@@@@@@@@@@@@@@@@@@@@@@@@###@@&&$|;:::'::::::
    //````````````';|$&@@@@@@@@@###@@@@@@########@@@@$!''''::::
    //`````````..````:|%$@@@@@#########@#########@@@@&!''''::::
    //`````````````````:|&########################@@@$;::::::::
    //``````````````````:!$@########################@%;:::'::::
    //``````````..``````':|&#######################@@&!''''''::
    //''''::'''`.`''''''':|@#######################@@&|:'`.`';!
    //:::::::::``'''''';%@######################@@##@@&!::'';;;
    //::;::::::`.''''';%@@@@####################$%@##@@%;:'':;!
    //:;;;;::::``':;%@@@#########################&%&##@@|:'';;!
    //;;!;;;;;;'`::;%@#############################@@##@$!'';!!
    //;;;;;;;;:``':::::;|$@############################@$!'`;!!
    //::;;;;;;:'`'::::::;!$@#######################&&@$$$;``:;;
    //`````````..````````'|@#####################$;!$$$&@@|''':
    //'''''''''''''':'''''|@#########@&@##########@@####@@&%|!!
    //''''''''':'''::'':''!&########&!|&@##########&&####&%|!||
    //:::::'''::::::::::::!&########|:;|$@#########@&###&%||||!
    //:::::::'''''':::::::!&#######@!:;!!$@########@$&##@%||||!
    //
    //                    だからよ...止まるじゃねえぞ
    // */
     
     
     
     #pragma GCC optimize(2)
    #pragma GCC optimize(3)
    #pragma GCC optimize("Ofast")
    #pragma GCC optimize("inline")
    #pragma GCC optimize("-fgcse")
    #pragma GCC optimize("-fgcse-lm")
    #pragma GCC optimize("-fipa-sra")
    #pragma GCC optimize("-ftree-pre")
    #pragma GCC optimize("-ftree-vrp")
    #pragma GCC optimize("-fpeephole2")
    #pragma GCC optimize("-ffast-math")
    #pragma GCC optimize("-fsched-spec")
    #pragma GCC optimize("unroll-loops")
    #pragma GCC optimize("-falign-jumps")
    #pragma GCC optimize("-falign-loops")
    #pragma GCC optimize("-falign-labels")
    #pragma GCC optimize("-fdevirtualize")
    #pragma GCC optimize("-fcaller-saves")
    #pragma GCC optimize("-fcrossjumping")
    #pragma GCC optimize("-fthread-jumps")
    #pragma GCC optimize("-funroll-loops")
    #pragma GCC optimize("-fwhole-program")
    #pragma GCC optimize("-freorder-blocks")
    #pragma GCC optimize("-fschedule-insns")
    #pragma GCC optimize("inline-functions")
    #pragma GCC optimize("-ftree-tail-merge")
    #pragma GCC optimize("-fschedule-insns2")
    #pragma GCC optimize("-fstrict-aliasing")
    #pragma GCC optimize("-fstrict-overflow")
    #pragma GCC optimize("-falign-functions")
    #pragma GCC optimize("-fcse-skip-blocks")
    #pragma GCC optimize("-fcse-follow-jumps")
    #pragma GCC optimize("-fsched-interblock")
    #pragma GCC optimize("-fpartial-inlining")
    #pragma GCC optimize("no-stack-protector")
    #pragma GCC optimize("-freorder-functions")
    #pragma GCC optimize("-findirect-inlining")
    #pragma GCC optimize("-fhoist-adjacent-loads")
    #pragma GCC optimize("-frerun-cse-after-loop")
    #pragma GCC optimize("inline-small-functions")
    #pragma GCC optimize("-finline-small-functions")
    #pragma GCC optimize("-ftree-switch-conversion")
    #pragma GCC optimize("-foptimize-sibling-calls")
    #pragma GCC optimize("-fexpensive-optimizations")
    #pragma GCC optimize("-funsafe-loop-optimizations")
    #pragma GCC optimize("inline-functions-called-once")
    #pragma GCC optimize("-fdelete-null-pointer-checks")
    
    #include <vector>
    #include <algorithm>
    #include <string>
    #include<cstring>
    #include <iostream>
    #include <set>
    #include <map>
    #include <stack>
    #include <queue>
    #include <unordered_map>
    #include <bitset>
    #include <cassert>
    #include <chrono>
    #include <random>
    #include <iomanip>
    #include <unordered_set>
    #include <ctime>
    #include <chrono>
    using namespace std;
    // #define  ll long long
    const int N =1e6+10;
    #define PII pair<int , int >
    #define all(x) (x).begin(),(x).end()
    #define rall(x) (x).rbegin(),(x).rend()
    #define pb push_back
    #define sz(x) (int)(x).size()
    typedef long long ll;
    typedef long double ld;
    mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
    ll n , m ,t ;
     
    #define __i __int128
    //ll mod = 1e9+7;
     
     
     ll br[N]={0};
    ll f[100010];
    vector<pair<ll ,ll > > v;
    int main(){
        ios::sync_with_stdio(0);
        cin.tie(0), cout.tie(0);
        cin >>t;
        while(t--){
            cin >>n;    ll sum =0 ;
            for(int i=1 ;i<=n;i++){
                cin>>m;
                v.push_back({(1<<m) , i});
                sum +=(1<<m);
            }
            if(sum < (1<<30)){
                 cout<<"impossible"<<endl;
                 continue ;
            }
            sort(v.begin(),v.end());
            for(int i=1 ;i<=n;i++)br[i]=0 ;
            sum = (1<<30) ;
            for(int i=v.size()-1 ;i>=0;i--)
                if(sum>=v[i].first){
                        sum-=v[i].first;
                    br[v[i].second] = 1;
                }
            for(int i=1 ;i<=n;i++)cout<<br[i];cout<<endl;
    
        }
        return 0;
     
    }
    

    I

    I思路

    主要注意一件事情就行了,是连续的最大字典序子串,这样babb,是会输出bb的(学了一手新的max的用法)

    I代码

    ///*
    //正在播放《フリージア》
    //1:21  ━━━━━━●─────   5:35
    //   ?   ?   ??   ?   ?
    //```````'`...```````''`````````````'````````````````'`.`''
    //```````''..`';;'```''```'''''''''''''`````````````````'':
    //.````''''':;;!!:````'````'''''''''''``````````````````'':
    //``''''''':;;;;;'```'``````''```````````____________```'':
    //`````````:;;!;'```````````'```````'```|   所以说   |'``'':
    //```````'|$&$%:````````````'```````````|不要停下来啊|''''':
    //````'''!$&&&|'```````````'''::''::''''/ (指AC)  |':'':::
    //````'':|&&&$!'`````'''''''::.....`;!;'/_________|''``'::
    //  ....'|&&@$!'........```:!;'....`:;:```````````````````'
    //..````;$&&&$!:''``````'':|%%!::;|%$$!::::::::''::::::::::
    //``````!&&@&&|:'````````':|$$$$$$$$$|:':::::::::::::::::::
    //`````:%&@@@@@@@@&&&@@@@&&&&@@@@@@@&&&|::::::::':::::::::;
    //`````.```':|$@@@@@@@@@@@@@@@@@@@@@@@@###@@&&$|;:::'::::::
    //````````````';|$&@@@@@@@@@###@@@@@@########@@@@$!''''::::
    //`````````..````:|%$@@@@@#########@#########@@@@&!''''::::
    //`````````````````:|&########################@@@$;::::::::
    //``````````````````:!$@########################@%;:::'::::
    //``````````..``````':|&#######################@@&!''''''::
    //''''::'''`.`''''''':|@#######################@@&|:'`.`';!
    //:::::::::``'''''';%@######################@@##@@&!::'';;;
    //::;::::::`.''''';%@@@@####################$%@##@@%;:'':;!
    //:;;;;::::``':;%@@@#########################&%&##@@|:'';;!
    //;;!;;;;;;'`::;%@#############################@@##@$!'';!!
    //;;;;;;;;:``':::::;|$@############################@$!'`;!!
    //::;;;;;;:'`'::::::;!$@#######################&&@$$$;``:;;
    //`````````..````````'|@#####################$;!$$$&@@|''':
    //'''''''''''''':'''''|@#########@&@##########@@####@@&%|!!
    //''''''''':'''::'':''!&########&!|&@##########&&####&%|!||
    //:::::'''::::::::::::!&########|:;|$@#########@&###&%||||!
    //:::::::'''''':::::::!&#######@!:;!!$@########@$&##@%||||!
    //
    //                    だからよ...止まるじゃねえぞ
    // */
    
    
    
    
    #include <vector>
    #include <algorithm>
    #include <string>
    #include<cstring>
    #include <iostream>
    #include <set>
    #include <map>
    #include <stack>
    #include <queue>
    #include <unordered_map>
    #include <bitset>
    #include <cassert>
    #include <chrono>
    #include <random>
    #include <iomanip>
    #include <unordered_set>
    #include <ctime>
    #include <chrono>
    using namespace std;
    // #define  ll long long
    const int N =1e6+10;
    #define PII pair<int , int > 
    #define all(x) (x).begin(),(x).end()
    #define rall(x) (x).rbegin(),(x).rend()
    #define pb push_back
    #define sz(x) (int)(x).size()
    typedef long long ll;
    typedef long double ld;
    mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
    int n , m ,t ;
    
    #define __i __int128
    //ll mod = 1e9+7;
    
    string manacher(string s){
    	if(s.size()<2)return s;
    	string t ;t+='$';
    	for(int i=0;i<s.size();i++)
    		t +='#'+s[i];
    	t+='@';
    	int num = t.size();
    	int p[num];
    	int id =0 , mx= 0;
    	int maxl = -1;
    	int index =0;
    	for(int j=1 ;j<num-1;j++){
    		p[j] = mx>j?min(p[2*id-j],mx - j):1;
    		while(t[j+p[j]]==t[j-p[j]])p[j]++;
    		if(mx<p[j]+j){
    			mx = p[j]+j;
    			id = j;
    		}
    		if(maxl < p[j]+ 1){
    			maxl = p[j]-1 ;
    			index = j;
    		}
    	}
    	int start = (index - maxl)/2;
    	//cout <<start<<endl;
    	return s.substr(start ,start+maxl);
    	
    }
    int arr[100010];
    int main(){
        ios::sync_with_stdio(0);
        cin.tie(0), cout.tie(0);
        string s;cin>>s;
        string ss;
        int len =s.size();
       for(int i=0;i<len;i++){
       		string sss;
       		for(int j=i;j<len;j++)sss+=s[j] ;
       		ss = max(ss, sss);
       }
          cout<<ss<<endl;
        
        return 0;
    
    }
    

    J

    J思路

    签到题,(群里有大佬说什么退火,给我搞的一愣一愣的..)

    J代码

    ///*
    //正在播放《フリージア》
    //1:21  ━━━━━━●─────   5:35
    //   ?   ?   ??   ?   ?
    //```````'`...```````''`````````````'````````````````'`.`''
    //```````''..`';;'```''```'''''''''''''`````````````````'':
    //.````''''':;;!!:````'````'''''''''''``````````````````'':
    //``''''''':;;;;;'```'``````''```````````____________```'':
    //`````````:;;!;'```````````'```````'```|   所以说   |'``'':
    //```````'|$&$%:````````````'```````````|不要停下来啊|''''':
    //````'''!$&&&|'```````````'''::''::''''/ (指AC)  |':'':::
    //````'':|&&&$!'`````'''''''::.....`;!;'/_________|''``'::
    //  ....'|&&@$!'........```:!;'....`:;:```````````````````'
    //..````;$&&&$!:''``````'':|%%!::;|%$$!::::::::''::::::::::
    //``````!&&@&&|:'````````':|$$$$$$$$$|:':::::::::::::::::::
    //`````:%&@@@@@@@@&&&@@@@&&&&@@@@@@@&&&|::::::::':::::::::;
    //`````.```':|$@@@@@@@@@@@@@@@@@@@@@@@@###@@&&$|;:::'::::::
    //````````````';|$&@@@@@@@@@###@@@@@@########@@@@$!''''::::
    //`````````..````:|%$@@@@@#########@#########@@@@&!''''::::
    //`````````````````:|&########################@@@$;::::::::
    //``````````````````:!$@########################@%;:::'::::
    //``````````..``````':|&#######################@@&!''''''::
    //''''::'''`.`''''''':|@#######################@@&|:'`.`';!
    //:::::::::``'''''';%@######################@@##@@&!::'';;;
    //::;::::::`.''''';%@@@@####################$%@##@@%;:'':;!
    //:;;;;::::``':;%@@@#########################&%&##@@|:'';;!
    //;;!;;;;;;'`::;%@#############################@@##@$!'';!!
    //;;;;;;;;:``':::::;|$@############################@$!'`;!!
    //::;;;;;;:'`'::::::;!$@#######################&&@$$$;``:;;
    //`````````..````````'|@#####################$;!$$$&@@|''':
    //'''''''''''''':'''''|@#########@&@##########@@####@@&%|!!
    //''''''''':'''::'':''!&########&!|&@##########&&####&%|!||
    //:::::'''::::::::::::!&########|:;|$@#########@&###&%||||!
    //:::::::'''''':::::::!&#######@!:;!!$@########@$&##@%||||!
    //
    //                    だからよ...止まるじゃねえぞ
    // */
    
    
    
    
    #include <vector>
    #include <algorithm>
    #include <string>
    #include<cstring>
    #include <iostream>
    #include <set>
    #include <map>
    #include <stack>
    #include <queue>
    #include <unordered_map>
    #include <bitset>
    #include <cassert>
    #include <chrono>
    #include <random>
    #include <iomanip>
    #include <unordered_set>
    #include <ctime>
    #include <chrono>
    using namespace std;
    // #define  ll long long
    const int N =1e6+10;
    #define PII pair<int , int > 
    #define all(x) (x).begin(),(x).end()
    #define rall(x) (x).rbegin(),(x).rend()
    #define pb push_back
    #define sz(x) (int)(x).size()
    typedef long long ll;
    typedef long double ld;
    mt19937 rnd(chrono::high_resolution_clock::now().time_since_epoch().count());
    int n , m ,t ;
    
    #define __i __int128
    //ll mod = 1e9+7;
    
    string manacher(string s){
    	if(s.size()<2)return s;
    	string t ;t+='$';
    	for(int i=0;i<s.size();i++)
    		t +='#'+s[i];
    	t+='@';
    	int num = t.size();
    	int p[num];
    	int id =0 , mx= 0;
    	int maxl = -1;
    	int index =0;
    	for(int j=1 ;j<num-1;j++){
    		p[j] = mx>j?min(p[2*id-j],mx - j):1;
    		while(t[j+p[j]]==t[j-p[j]])p[j]++;
    		if(mx<p[j]+j){
    			mx = p[j]+j;
    			id = j;
    		}
    		if(maxl < p[j]+ 1){
    			maxl = p[j]-1 ;
    			index = j;
    		}
    	}
    	int start = (index - maxl)/2;
    	//cout <<start<<endl;
    	return s.substr(start ,start+maxl);
    	
    }
    int arr[100010];
    int main(){
        ios::sync_with_stdio(0);
        cin.tie(0), cout.tie(0);
    	cin >>n;
    	for(int i=0;i<n;i++)cin >>arr[i];
        sort(arr,arr+n);
        cout<<arr[n-1]-arr[0]<<endl;
    	
        return 0;
    
    }
    
  • 相关阅读:
    前端css实现最基本的时间轴
    前端css实现最基本的时间轴
    那些年遇见的奇葩编程书籍封面
    那些年遇见的奇葩编程书籍封面
    2018年国内就业薪资高的7大编程语言排行
    乡愁
    乡愁
    微光系列之青春无敌美少女
    1287 矩阵乘法
    一些关于DP的知识
  • 原文地址:https://www.cnblogs.com/gaohaoy/p/12549293.html
Copyright © 2020-2023  润新知