• 牛客IOI周赛23普及组全题解


    A 小L的作文

    链接
    水题不多说
    统计字符就完了

    int main(){
    	char s; cin >> s;
    	int ans = 0;
    	string t; cin >> t;
    	for(int i=1;i<=t.size();i++){
            if(t[i-1] == s) ans ++;
    	}
    	cout<<ans;
    	return 0;
    }
    

    B 小L的多项式

    链接
    硬模拟
    两层for,记得取模

    ll a[maxn];
    ll x[maxn];
    int n,m;
    ll ans[maxn];
    int main() {
        cin >> n;
        for(int i=0;i<=n;i++) a[i] = read;
        cin >> m;
        for(int i=1;i<=m;i++) x[i] = read;
        for(int i=1;i<=m;i++){
            for(int j=0;j<=n;j++){
                ans[i] += a[j] * qPow(x[i],j);
                ans[i] %= mod;
            }
        }
        for(int i=1;i<=m;i++){
            printf("%lld",ans[i]);
            if(i != m) printf(" ");
        }
    	return 0;
    }
    

    C 小L的编辑器

    链接
    注意,直接使用string可能会T(不是可能,是必然,因为试过了):

    string a,b;
    int main() {
        string s; cin >> s;
        string t; cin >> t;
        int len = s.size();
        for(int i=0;i<len;i++){
            if(t[i] == 'L') b = s[i] + b;
            else a = a + s[i];
        }
        cout<<a+b<<endl;
        return 0;
    }
    

    Ac_Code():
    用双端队列模拟就行了,换一种方式而已

    deque<int>que1;
    deque<int>que2;
    int main() {
        string s; cin >> s;
        string t; cin >> t;
        int len = s.size();
        for(int i=0;i<len;i++){
            if(t[i] == 'L') que2.push_front(s[i]);
            else que1.push_back(s[i]);
        }
        while(que1.size()){
            printf("%c",que1.front());
            que1.pop_front();
        }
        while(que2.size()){
            printf("%c",que2.front());
            que2.pop_front();
        }
    	return 0;
    }
    

    D 小L的数列

    链接
    思路来自:UpMing!
    Main_Code()

    int T,dp[maxn],n,a[maxn];
    int b[maxn];
    int va[maxn];
    int main(){
        /// cout<<sqrt(100000)<<endl;
    	T=read();
    	while(T--){
    		n=read();
    		int mx = -1;
    		for(int i=1;i<=n;i++) a[i]=read(),mx = max(mx,a[i]);
    		sort(a+1,a+n+1);
    		memset(dp,0,sizeof dp);
    		memset(b,0,sizeof b);
    		memset(va,0,sizeof va);
            for(itn i=1;i<=n;i++){
                if(a[i] == 1) continue;
                int t = 0;
                for(int j=1;j*j <= a[i];j++){
                    if(a[i] % j == 0){
                        int a1 = j;
                        int a2 = a[i] / j;
                        if(a1 == a2){
                            if(a1 > 1){
                                dp[a[i]] = max(dp[a[i]],b[a2] + 1);
                            }va[++t] = a2;
                        }else{
                            if(a1 > 1) dp[a[i]] = max(dp[a[i]],b[a1] + 1);
                            va[++t] = a1;
                            if(a2 > 1) dp[a[i]] = max(dp[a[i]],b[a2] + 1);
                            va[++t] = a2;
                        }
                    }
                }
                for(int j=1;j<=t;j++){
                    if(va[j] > 1) b[va[j]] = max(b[va[j]],dp[a[i]]);
                }
            }
       int ans =1;
       for(int i=1 ;i<=n ;i++) ans = max(ans,dp[a[i]]);
       cout<<ans<<endl;
    	}
    }
    
  • 相关阅读:
    Sensor Fusion-based Exploration in Home Environments using Information, Driving and Localization Gains(基于传感器融合的使用信息、驾驶和定位增益在家庭环境中的探索)
    Git中从远程的分支获取最新的版本到本地
    git拉取远程分支到本地分支或者创建本地新分支
    win7下使用git
    ADAS

    struct对齐
    STL容器
    智能指针
    c++中的基本知识点
  • 原文地址:https://www.cnblogs.com/PushyTao/p/14507401.html
Copyright © 2020-2023  润新知