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

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

导弹拦截

 1 //震惊!puts("0")竟然没分!
 2 //第二问贪心选择每行第二大的数中最大的那个
 3 #include<bits/stdc++.h>
 4 using namespace std;
 5 int num[501][501];
 6 int main(){
 7     int N , maxN = 0 , dirA , dirB , maxA = 0 , maxDirA , maxB = 0 , maxDirB;
 8     cin >> N;
 9     for(int i = 1 ; i < N ; i++)
10         for(int j = i + 1 ; j <= N ; j++)
11         {
12             cin >> num[i][j];
13             num[j][i] = num[i][j];
14         }
15     for(int i = 1 ; i <= N ; i++)
16     {
17         int m = 0 , dir , mci = 0 , dirci;
18         for(int j = 1 ; j <= N ; j++)
19             if(i ^ j)
20                 if(m < num[i][j])
21                     {
22                         mci = m;
23                         m = num[i][j];
24                         dirci = dir;
25                         dir = j;
26                     }
27                     else    if(mci < num[i][j])
28                     {
29                         mci = num[i][j];
30                         dirci = j;
31                     }
32         if(mci > maxN){
33             maxN = mci;
34             dirA = i;
35             dirB = dirci;
36         }
37     }
38     for(int i = 1 ; i <= N ; i++)
39         if(i ^ dirA && i ^ dirB && maxA < num[dirA][i])
40         {
41             maxA = num[dirA][i];
42             maxDirA = i;
43         }
44     for(int i = 1 ; i <= N ; i++)
45         if(i ^ dirB && i ^ dirA && i ^ maxDirA && maxB < num[dirB][i])
46         {
47             maxB = num[dirB][i];
48             maxDirB = i;
49         }
50     if(num[maxDirA][maxDirB] > num[dirA][dirB]){
51         cout << 0;
52         return 0;
53     }
54     for(int i = 1 ; i <= N ; i++)
55         if(i ^ dirA && i ^ dirB && i ^ maxDirA && i ^ maxDirB && (num[i][maxDirA] > maxN || num[i][maxDirB] > maxN))
56         {
57             int m = 0 , mDir;
58             for(int j = 1 ; j <= N ; j++)
59                 if(j ^ dirA && j ^ dirB && j ^ maxDirA && j ^ maxDirB && j ^ i && m < num[i][j])
60                 {
61                     m = num[i][j];
62                     mDir = j;
63                 }
64             if(num[mDir][dirA] > m || num[mDir][dirB] > m)
65             {
66                 cout << 0;
67                 return 0;
68             }
69         }
70     cout << 1 << endl << maxN;
71     return 0;
72 }

三国游戏

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     string s;
 6     cin >> s;
 7     if(s[0] == '-')
 8     {
 9         cout << '-';
10         s = string(s , 1 , s.size() - 1);
11     }
12     int f = 0;
13     for(int i = s.size() ; i ; i--)
14         if(f || s[i - 1] - '0')
15         {
16             cout << s[i - 1];
17             f = 1;
18         }
19     return 0;
20 }

数字反转

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 char s1[10001] , s2[1000011];
 4 int l1 , l2;
 5 inline bool cmp(int i)
 6 {
 7     for(int j = 0 ; j < l1 ; j++)
 8         if(s1[j] != s2[j + i])    return false;
 9     return true;
10 }
11 int main()
12 {
13     int cou = 0 , couF = -1;
14     gets(s1);
15     gets(s2);
16     l1 = strlen(s1);
17     l2 = strlen(s2);
18     for(int i = 0 ; i < l1 ; i++)
19         if(s1[i] >= 'A' && s1[i] <= 'Z')    s1[i] += 'a' - 'A';
20     for(int i = 0 ; i < l2 ; i++)
21         if(s2[i] >= 'A' && s2[i] <= 'Z')    s2[i] += 'a' - 'A';
22     for(int i = 0 ; i <= l2 - l1 ; i++)
23         if(cmp(i) && (!i || s2[i - 1] == ' ') && (i == l2 - l1 || s2[l1 + i] == ' '))
24         {
25             cou++;
26             if(couF == -1)    couF = i;
27         }
28     if(cou)    cout << cou << " " << couF;
29     else    cout << -1;
30     return 0;
31 }

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

统计单词数

 1 //归并排序
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 struct can{
 5     int sl , fs , i;
 6 }ans[200001] , win[100001] , lose[100001];
 7 int n;
 8 void gb()
 9 {
10     int dirA = 0 , dirB = 0;
11     for(int i = 0 ; i < 2 * n ; i++)
12         if(dirA != n && (dirB == n || win[dirA].fs > lose[dirB].fs || win[dirA].fs == lose[dirB].fs && win[dirA].i < lose[dirB].i))
13             ans[i] = win[dirA++];
14         else    ans[i] = lose[dirB++];
15 }
16 bool cmp(can a , can b)
17 {
18     return a.fs > b.fs || a.fs == b.fs && a.i < b.i;
19 }
20 int main()
21 {
22     ios::sync_with_stdio(false);
23     int r , q;
24     cin >> n >> r >> q;
25     for(int i = 0 ; i < 2 * n ; i++)    cin >> ans[i].fs;
26     for(int i = 0 ; i < 2 * n ; i++)
27     {
28         cin >> ans[i].sl;
29         ans[i].i = i + 1;
30     }
31     sort(ans , ans + n * 2 , cmp);
32     while(r--)
33     {
34         for(int i = 0 ; i < n ; i++)
35         {
36             if(ans[i * 2].sl > ans[i * 2 + 1].sl)
37             {
38                 win[i] = ans[i * 2];
39                 lose[i] = ans[i * 2 + 1];
40             }
41             else
42             {
43                 win[i] = ans[i * 2 + 1];
44                 lose[i] = ans[i * 2];
45             }
46             win[i].fs++;
47         }
48         gb();
49     }
50     cout << ans[q - 1].i;
51     return 0;
52 }


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

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

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