c multimap_emacs python c-c c-c i 不好使_a=b=c,a=b==c c语言

电脑杂谈  发布时间:2019-09-26 07:03:00  来源:网络整理

a=b=c,a=b==c c语言_emacs python c-c c-c i 不好使_c multimap

虽然普及组通常都是暴力省一,但是有一些题目还是挺难的qwq个人认为能进TG的题目会在后面打上'*'

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main(){
 4     std::ios::sync_with_stdio(false);
 5     double Sn = 0;
 6     int k , i = 1;
 7     cin >> k;
 8     while(Sn <= k)    Sn += 1.0 / i++;
 9     cout << --i;
10     return 0;
11 }

级数求和

 1 //递推
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 long long num[21][21];
 5 int dir[8][2] = {1,2,1,-2,-1,2,-1,-2,2,1,2,-1,-2,-1,-2,1};
 6 int main()
 7 {
 8     ios::sync_with_stdio(false);
 9     int a , b , c , d;
10     cin >> a >> b >> c >> d;
11     for(int i = 0 ; i <= a ; i++)
12         for(int j = 0 ; j <= b ; j++)
13         {
14             int f = 1;
15             for(int k = 0 ; k < 8 && f ; k++)
16                 if(c + dir[k][0] == i && d + dir[k][1] == j)    f = 0;
17             if(f && (c != i || d != j))
18                 if(i + j)    num[i][j] = num[i ? i - 1 : 0][j] + num[i][j ? j - 1 : 0];
19                 else    num[i][j] = 1;
20         }
21     cout << num[a][b];
22     return 0;
23 }

过河卒

 1 //递归
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 int num[21] , cou , n;
 5 bool vis[21];
 6 bool ifZ(int a)
 7 {
 8     if(a == 1 || !a)    return false;
 9     for(int i = 2 ; i * i <= a ; i++)
10         if(a % i == 0)    return false;
11     return true;
12 }
13 void dfs(int a , int b , int c)
14 {
15     if(!a)
16     {
17         if(ifZ(b))    cou++;
18         return;
19     }
20     for(int i = c ; i <= n - a ; i++)
21         if(!vis[i])
22         {
23             vis[i] = 1;
24             dfs(a - 1 , b + num[i] , i + 1);
25             vis[i] = 0;
26         }
27 }
28 int main()
29 {
30     std::ios::sync_with_stdio(false);
31     int k;
32     cin >> n >> k;
33     for(int i = 0 ; i < n ; i++)    cin >> num[i];
34     dfs(k , 0 , 0);
35     cout << cou;
36     return 0;
37 }

选数

 1 //按位搜索
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 multimap < char , char > rule;
 5 bool times[31][10];
 6 int num[31] = {1 , 1};
 7 int dfs(char a , int b)
 8 {
 9     if(times[b][a - '0'])    return 0;
10     times[b][a - '0'] = 1;
11     int sum = 1;
12     map < char , char > :: iterator iter = rule.find(a);
13     for(int i = 0 ; i != rule.count(a) ; ++i , ++iter)
14         sum += dfs(iter -> second , b);
15     return sum;
16 }
17 int main()
18 {
19     string s;
20     int n;
21     for(cin >> s >> n ; n ; n--){
22         char a , b;
23         cin >> a >> b;
24         rule.insert(make_pair(a , b));
25     }
26     for(int i = 0 ; i < s.size() ; i++)
27     {
28         int k = dfs(s[i] , i);
29         for(int i = 1 ; i <= num[0] ; i++)    num[i] *= k;
30         for(int i = 1 ; i <= num[0] ; i++)
31             if(num[i] >= 10)
32             {
33                 num[i + 1] += num[i] / 10;
34                 num[i] %= 10;
35                 if(i == num[0])    num[0]++;
36             }
37     }
38     while(num[0]--)    cout << num[num[0] + 1];
39     return 0;
40 }

产生数

 1 //卡特兰数
 2 #include<bits/stdc++.h>
 3 #define ll long long
 4 using namespace std;
 5 inline ll fast_read()
 6 {
 7     char c = getchar();
 8     ll a = 0;
 9     int k = 0;
10     while(!isdigit(c))
11     {
12         if(c == '-')    k = 1;
13         c = getchar();
14     }
15     while(isdigit(c))    a = (a << 3) + (a << 1) + c - '0' , c = getchar();
16     return k ? -a : a;
17 }
18 inline void fast_print(ll x)
19 {
20     int num[1001] , dirN = -1;
21     if(x < 0)    putchar('-') , x = -x;
22     while(x)    num[++dirN] = x % 10 , x /= 10;
23     if(dirN == -1)    putchar('0');
24     while(dirN + 1)    putchar(num[dirN--] + 48);
25     putchar('\n');
26 }
27 int num[19] = {1 , 1};
28 int main()
29 {
30     int n = fast_read();
31     for(int i = 2 ; i <= n ; i++)
32         for(int j = 0 ; j < n ; j++)
33             num[i] += num[j] * num[i - j - 1];
34     cout << num[n];
35     return 0;
36 }

栈

 1 //注意最后的0:0
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 int ans[2500][2];
 5 int main()
 6 {
 7     string s;
 8     int W11 = 0 , L11 = 0 , W21 = 0 , L21 = 0 , dirA = 0;
 9     while(cin >> s)
10     {
11         int ifE = 0;
12         for(int i = 0 ; i < s.size() && !ifE ; i++)
13         {
14             if(s[i] == 'W')
15             {
16                 W11++;
17                 W21++;
18                 if(W11 >= 11 && W11 - L11 >= 2)
19                 {
20                     cout << W11 << ":" << L11 << endl;
21                     W11 = L11 = 0;
22                 }
23                 if(W21 >= 21 && W21 - L21 >= 2)
24                 {
25                     ans[dirA][0] = W21;
26                     ans[dirA++][1] = L21;
27                     W21 = L21 = 0;
28                 }
29             }
30             else    if(s[i] == 'L')
31             {
32                 L11++;
33                 L21++;
34                 if(L11 >= 11 && L11 - W11 >= 2)
35                 {
36                     cout << W11 << ":" << L11 << endl;
37                     W11 = L11 = 0;
38                 }
39                 if(L21 >= 21 && L21 - W21 >= 2)
40                 {
41                     ans[dirA][0] = W21;
42                     ans[dirA++][1] = L21;
43                     W21 = L21 = 0;
44                 }
45             }
46             else    ifE = 1;
47         }
48         if(ifE)    break;
49     }
50     cout << W11 << ":" << L11 << endl;
51     for(int i = 0 ; i < dirA ; i++)    cout << endl << ans[i][0] << ":" << ans[i][1];
52     cout << endl << W21 << ":" << L21;
53     return 0;
54 }


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-124192-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...