zoukankan      html  css  js  c++  java
  • Codeforces #350

    A题:

    题意:判断火星上的节假日最多和最少

    分析:除以7,然后我们对原数模7的余数进行判断一下即可

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <string>
     5 #include <vector>
     6 #include <algorithm>
     7 #include <set>
     8 #include <map>
     9 #include <bitset>
    10 #include <cmath>
    11 #include <queue>
    12 #include <stack>
    13 using namespace std;
    14 int n;
    15 int main()
    16 {
    17     while(cin>>n)
    18     {
    19         int minx,mx;
    20         int t=n/7;
    21         t*=2;
    22         if(n%7==0){
    23             minx=mx=t;
    24         }else if(n%7==1){
    25             minx=t;
    26             mx=t+1;
    27         }else if(n%7==6){
    28             minx=t+1;
    29             mx=t+2;
    30         }else{
    31             minx=t;
    32             mx=t+2;
    33         }
    34         cout<<minx<<" "<<mx<<endl;
    35     }
    36     return 0;
    37 }
    View Code

    B题:

    题意:有n个机器人,第i个机器人纪录其前面的i-1个数和其本身,问第k个数是多少

    分析:判断一下第k个属于第几个机器人的即可

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <string>
     5 #include <vector>
     6 #include <algorithm>
     7 #include <set>
     8 #include <map>
     9 #include <bitset>
    10 #include <cmath>
    11 #include <queue>
    12 #include <stack>
    13 using namespace std;
    14 const int maxn=500002;
    15 long long dp[maxn];
    16 int a[maxn];
    17 int n;
    18 int k;
    19 int main()
    20 {
    21     while(cin>>n>>k)
    22     {
    23         for(int i=0;i<n;i++)
    24             cin>>a[i];
    25         int h;
    26         int ans;
    27         memset(dp,0,sizeof(dp));
    28         for(int i=1;i<=n;i++){
    29             dp[i]=dp[i-1]+i;
    30             if(dp[i]>=k){
    31                 h=i; break;
    32             }
    33         }
    34         int flag=0;
    35         if(dp[h]==k){
    36             flag=1;
    37         }else{
    38             h--; flag=0;
    39         }
    40         if(flag) cout<<a[h-1]<<endl;
    41         else{
    42             int t=k-dp[h];
    43             //cout<<"t: "<<t<<endl;
    44             cout<<a[t-1]<<endl;
    45         }
    46     }
    47     return 0;
    48 }
    View Code

    C题:

    题意:n个科学家来自不同国家,每个科学家对应懂一种语言,有双语电影,其中声音和文字是不同语言,希望找到一个电影院,让尽可能多的科学家能看懂,如果声音相同的情况比较文字尽量多的

    分析:因为数据范围太大,用map进行统计每会说没中语言的科学家的人数,然后进行排序即可

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <string>
     5 #include <vector>
     6 #include <algorithm>
     7 #include <set>
     8 #include <map>
     9 #include <bitset>
    10 #include <cmath>
    11 #include <queue>
    12 #include <stack>
    13 using namespace std;
    14 const int maxn=200020;
    15 map<int,int> vis;
    16 typedef struct p
    17 {
    18     int id;
    19     int aud,sub;
    20 }p;
    21 p s[maxn];
    22 bool cmp(p a,p b)
    23 {
    24     if(a.aud==b.aud)
    25         return a.sub>b.sub;
    26     else
    27         return a.aud>b.aud;
    28 }
    29 int main()
    30 {
    31     int n,m;
    32     cin>>n;
    33     for(int i=0;i<n;i++){
    34         int x;
    35         scanf("%d",&x);
    36         vis[x]++;
    37     }
    38     cin>>m;
    39     for(int i=0;i<m;i++){
    40         int y;
    41         scanf("%d",&y);
    42         s[i].id=i+1;
    43         s[i].aud=vis[y];
    44     }
    45     for(int i=0;i<m;i++){
    46         int z;
    47         scanf("%d",&z);
    48         s[i].sub=vis[z];
    49     }
    50     sort(s,s+m,cmp);
    51     printf("%d
    ",s[0].id);
    52     return 0;
    53 }
    View Code

     D题:

    题意:做一个蛋糕需要n种成份,需要每种成分ai,每种成分有bi,同时还有k个能转换成任意成分的物品,问最多能构成多少物品

    分析:可以以bi除以ai为序,然后用一个优先队列进行维护,期间模拟k个物品的情况即可

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <string>
     5 #include <vector>
     6 #include <algorithm>
     7 #include <set>
     8 #include <map>
     9 #include <bitset>
    10 #include <cmath>
    11 #include <queue>
    12 #include <stack>
    13 using namespace std;
    14 const int maxn=1010;
    15 typedef struct p
    16 {
    17     int a,b;
    18     int mul,mod; 
    19     friend bool operator<(p x,p y){
    20         return x.mul>y.mul;
    21     }
    22 }p;
    23 p s[maxn];
    24 int n,k;
    25 int main()
    26 {
    27     while(cin>>n>>k)
    28     {
    29         for(int i=0;i<n;i++)
    30             cin>>s[i].a;
    31         for(int i=0;i<n;i++){
    32             cin>>s[i].b;
    33             s[i].mul=s[i].b/s[i].a;
    34             s[i].mod=s[i].b%s[i].a;
    35         }
    36         priority_queue<p> que;
    37         for(int i=0;i<n;i++)
    38             que.push(s[i]);
    39         while(true){
    40             p h=que.top();
    41             int t=h.a-h.mod;
    42             k-=t;
    43             if(k<0) break;
    44             //cout<<"t: "<<t<<endl;
    45             h.b+=t;
    46             h.mod=h.b%h.a;
    47             h.mul=h.b/h.a;
    48             //cout<<h.mul<<endl;
    49              if(k>=0){
    50                 que.pop();
    51                 que.push(h);
    52                 if(k==0)
    53                 break;
    54             }
    55         }
    56         int z=que.top().mul;
    57         cout<<z<<endl;
    58     }
    59     return 0;
    60 }
    View Code
  • 相关阅读:
    解决cron不执行的问题
    查看crontab运行状态
    php_network_getaddresses: getaddrinfo failed 原因
    UPdate语句
    重磅邀请函来了!首届“腾讯云+社区开发者大会”免费报名!
    Node 框架接入 ELK 实践总结
    只知道ajax?你已经out了
    深入理解苹果系统(Unicode)字符串的排序方法
    附实例!实现iframe父窗体与子窗体的通信
    vue.js的项目实战
  • 原文地址:https://www.cnblogs.com/wolf940509/p/5465278.html
Copyright © 2011-2022 走看看