zoukankan      html  css  js  c++  java
  • 十月天梯赛训练补题 10.28

    A - Dubious Cyrpto  CodeForces - 1379B 

    题意:在区间[l,r]中取a、b、c要求满足a*n+(b-c)=m. m已知,n为正整数。

    思路:模运算

     1 #include <set>
     2 #include <map>
     3 #include <list>
     4 #include <stack>
     5 #include <queue>
     6 #include <deque>
     7 #include <cmath>
     8 #include <string>
     9 #include <vector>
    10 #include <cstdio>
    11 #include <cstring>
    12 #include <cstdlib>
    13 #include <sstream>
    14 #include <iostream>
    15 #include <algorithm>
    16 //#include <unordered_map>
    17 #define INF 0x3f3f3f3f
    18 #define ll long long
    19 #define ull unsigned long long
    20 #define FILL(a,n,v) fill(a,a+n,v)
    21 #define Mset(a,v) memset(a,v,sizeof a)
    22 #define Mcpy(a,b) memcpy(a,b,sizeof b) //a=b
    23 #define fcio ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)
    24 using namespace std;
    25 
    26 ll t;
    27 ll l,r,m;
    28 
    29 int main()
    30 {
    31     cin>>t;
    32     while(t--)
    33     {
    34         cin>>l>>r>>m;
    35         
    36         ll mx=r-l;
    37         ll mi=l-r;
    38         for(int i=l;i<=r;i++)
    39         {
    40             if(m%i<=mx&&m>=i)
    41             {
    42                 cout<<i<<' '<<m%i+l<<' '<<l<<endl;
    43                 break;
    44             }
    45             if(m%i-i>=mi)
    46             {
    47                 cout<<i<<' '<<r+m%i-i<<' '<<r<<endl;
    48                 break;
    49             }
    50         }
    51         
    52     }
    53 }

    B

    C - Big Vova CodeForces - 1407B 

    题意:给出序列a 将a重新排序成序列b 需满足条件:

    1.序列c: ci是

     1 #include <set>
     2 #include <map>
     3 #include <list>
     4 #include <stack>
     5 #include <queue>
     6 #include <deque>
     7 #include <cmath>
     8 #include <string>
     9 #include <vector>
    10 #include <cstdio>
    11 #include <cstring>
    12 #include <cstdlib>
    13 #include <sstream>
    14 #include <iostream>
    15 #include <algorithm>
    16 //#include <unordered_map>
    17 #define INF 0x3f3f3f3f
    18 #define ll long long
    19 #define ull unsigned long long
    20 #define FILL(a,n,v) fill(a,a+n,v)
    21 #define Mset(a,v) memset(a,v,sizeof a)
    22 #define Mcpy(a,b) memcpy(a,b,sizeof b) //a=b
    23 #define fcio ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)
    24 using namespace std;
    25 
    26 const int maxn=1e4;
    27 int t;
    28 int n;
    29 int a[maxn];
    30 int b[maxn];
    31 int gcd(int a,int b)
    32 {
    33     return b==0?a:gcd(b,a%b);
    34 }
    35 
    36 bool cmp(int a,int b)
    37 {
    38     return a>b;
    39 }
    40 
    41 int main()
    42 {
    43     cin>>t;
    44     while(t--)
    45     {
    46         cin>>n;
    47         for(int i=0;i<n;i++) cin>>a[i];
    48         sort(a,a+n,cmp);
    49         
    50 //        for(int i=0;i<n;i++) cout<<a[i]<<' ';
    51         
    52         bool vis[maxn];
    53         memset(vis,false,sizeof vis);
    54         
    55         int max=a[0];
    56         b[0]=a[0];
    57         vis[0]=true;
    58         for(int i=1;i<n;i++)
    59         {
    60             int tmp=0;
    61             int tmpj=0;
    62             for(int j=1;j<n;j++)
    63             {
    64                 if(!vis[j])
    65                 {
    66                     int t=gcd(max,a[j]);
    67                     if(t>tmp)
    68                     {
    69                         
    70                         tmp=t;
    71                         tmpj=j;
    72                     }
    73                 }
    74             }
    75             vis[tmpj]=true;
    76             b[i]=a[tmpj];
    77             max=tmp;
    78         }
    79         
    80         for(int i=0;i<n;i++) cout<<b[i]<<(i==n-1?'
    ':' ');
    81     }
    82 }

    D

    E

    F - Preparing Olympiad   CodeForces - 550B 

    题意:在n个题目中选择若干个,要求满足:

    1.题目的总难度在[l,r]之间。

    2.最难题与最易题的难度差值>=x。

    求满足条件的方法数量。

    思路:

    暴力dfs。

     1 #include <set>
     2 #include <map>
     3 #include <list>
     4 #include <stack>
     5 #include <queue>
     6 #include <deque>
     7 #include <cmath>
     8 #include <string>
     9 #include <vector>
    10 #include <cstdio>
    11 #include <cstring>
    12 #include <cstdlib>
    13 #include <sstream>
    14 #include <iostream>
    15 #include <algorithm>
    16 //#include <unordered_map>
    17 #define INF 0x3f3f3f3f
    18 #define ll long long
    19 #define ull unsigned long long
    20 #define FILL(a,n,v) fill(a,a+n,v)
    21 #define Mset(a,v) memset(a,v,sizeof a)
    22 #define Mcpy(a,b) memcpy(a,b,sizeof b) //a=b
    23 #define fcio ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)
    24 using namespace std;
    25 
    26 int a[50];
    27 int n,l,r,x;
    28 
    29 int cnt=0;
    30 void dfs(int res,int first,int sub,int i)
    31 {
    32     if(i==n)
    33     {
    34         if(res>=l&&res<=r&&(sub>=x)) cnt++;
    35         return;
    36     }
    37     
    38     dfs(res,first,sub,i+1);
    39     if(first==-1)
    40     {
    41         first=a[i];
    42     }
    43     dfs(res+a[i],first,a[i]-first,i+1);
    44     
    45 }
    46 
    47 int main()
    48 {
    49     cin>>n>>l>>r>>x;
    50     for(int i=0;i<n;i++) cin>>a[i];
    51     sort(a,a+n);
    52     
    53     dfs(0,-1,0,0);
    54     cout<<cnt<<endl;
    55 
    56 }

    G - Train Problem I  HDU - 1022 

    题意:堆栈模拟

     1 #include <set>
     2 #include <map>
     3 #include <list>
     4 #include <stack>
     5 #include <queue>
     6 #include <deque>
     7 #include <cmath>
     8 #include <string>
     9 #include <vector>
    10 #include <cstdio>
    11 #include <cstring>
    12 #include <cstdlib>
    13 #include <sstream>
    14 #include <iostream>
    15 #include <algorithm>
    16 //#include <unordered_map>
    17 #define INF 0x3f3f3f3f
    18 #define ll long long
    19 #define ull unsigned long long
    20 #define FILL(a,n,v) fill(a,a+n,v)
    21 #define Mset(a,v) memset(a,v,sizeof a)
    22 #define Mcpy(a,b) memcpy(a,b,sizeof b) //a=b
    23 #define fcio ios::sync_with_stdio(false); cin.tie(0); cout.tie(0)
    24 using namespace std;
    25 int n;
    26 
    27 
    28 int main()
    29 {
    30     while(cin>>n)
    31     {
    32         vector<string>v;
    33         string s1;
    34         string s2;
    35         cin>>s1>>s2;
    36         map<char,bool>vis;
    37         stack<char>st;
    38         int j=0;
    39         bool flag=true;
    40         for(int i=0;i<s2.size();i++)
    41         {
    42             
    43             if(!vis[s2[i]])
    44             {
    45                 vis[s2[i]]=true;
    46                 while(s1[j]!=s2[i]&&j<=s1.size())
    47                 {
    48                     vis[s1[j]]=true;
    49                     st.push(s1[j++]);
    50                     v.push_back("in");
    51                 }
    52                 v.push_back("in");
    53                 j++;
    54                 v.push_back("out");
    55             }
    56             else
    57             {
    58                 if(st.top()!=s2[i])
    59                 {
    60                     flag=false;
    61                     cout<<"No."<<endl<<"FINISH"<<endl;
    62                     break;
    63                 }
    64                 else
    65                 {
    66                     st.pop();
    67                     v.push_back("out");
    68                 }
    69             }
    70         }
    71         
    72         if(flag)
    73         {
    74             cout<<"Yes."<<endl;
    75             for(int i=0;i<v.size();i++) cout<<v[i]<<endl;
    76             cout<<"FINISH"<<endl;
    77         }
    78     }
    79     
    80 }

    H

    I

  • 相关阅读:
    asp 向另一个页面传递数组
    TSQL Program Rule and Tips 规则与优化
    虚函数 纯虚函数 抽象类
    static (c#)
    简单游标
    抽象方法 抽象类 (abstract)
    清理电脑
    泛型学习
    继承(对象生命周期) + 覆盖[new](索引函数) + 重载[virtual/override]
    #干货向#jQuery性能优化指南
  • 原文地址:https://www.cnblogs.com/lihahahahaji/p/13897957.html
Copyright © 2011-2022 走看看