zoukankan      html  css  js  c++  java
  • EOJ 2239 Friends

    http://www.acm.cs.ecnu.edu.cn/problem.php?problemid=2239

    poj http://poj.org/problem?id=1805

    题目的大概意思就是一些人要投票去三个地方,要注意的是同一个人如果同时有两或以上个想去的地方,那他就会弃权,其他的只要按照题目给的逻辑就可以了

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <cmath>
     5 #include <algorithm>
     6 #include <queue>
     7 #include <stack>
     8 #include <vector>
     9 #include <string>
    10 #include <set>
    11 #include <cctype>
    12 #include <cstdlib>
    13 #include <map>
    14 #define maxn 100005
    15 #define inf 0x3f3f3f
    16 #define LL long long
    17 using namespace std;
    18  
    19 string name[8] = {"Anne", "Bob", "Karin", "Dave", "Charly", "Edward", "Frank"};
    20 int mark[9]; //mark用于标记是否到场
    21 string stay[4] = {"cinema", "cocktail bar", "disco", "stay at the Hacienda"};
    22 char s[1005];
    23 int note[4]; //投票的
    24  
    25 void p(string st){
    26     for (int i = 0; i < 7; i++)
    27         if (st == name[i]) mark[i]++;
    28 }
    29  
    30 void init(){
    31     memset(mark, 0, sizeof(mark));
    32     memset(note, 0, sizeof(note));
    33     string st;
    34     for (int i = 0; s[i]; i++){
    35         if (s[i] != ' ') st += s[i];
    36         else{
    37             p(st);
    38             st = "";
    39         }
    40     }
    41     p(st);
    42 }
    43  
    44 void solve(){
    45     if (mark[0]) note[0]++; //Anne
    46     if (mark[1]){ // Bob
    47         int f1 = 0, f2 = 0;
    48         if (mark[2]) f1 = 1;
    49         if (mark[3] || mark[5] || !mark[0]) f2 = 1;
    50         if (f1 == 1 && f2 == 0) note[2]++;
    51         else if (f1 == 0 && f2 == 1) note[1]++;
    52     } 
    53     if (mark[2]){//Karin
    54         if (mark[4]) note[2]++;
    55         else if (mark[0]) note[0]++;
    56         else note[1]++;
    57     } 
    58     //if (mark[3]) //Dave
    59     if (mark[4]){ //Charly
    60         if (mark[0]) note[0]++;
    61     }
    62     if (mark[5]){ //Edward
    63         if (mark[0] && !mark[4]) note[1]++;
    64         else note[0]++;
    65     }
    66     if (mark[6]){ //Frank
    67         if (!mark[0] && !mark[1]) note[0]++;
    68         if (mark[0]) note[2]++;
    69     }    
    70     if (note[0] > note[1] && note[0] > note[2]) cout << stay[0] << endl;
    71     else if (note[1] > note[0] && note[1] > note[2]) cout << stay[1] << endl;
    72     else if (note[2] > note[0] && note[2] > note[1]) cout << stay[2] << endl;
    73     else cout << stay[3] << endl; 
    74 }
    75  
    76 int main(){
    77     int T;
    78     cin >> T;
    79     getchar();
    80     for (int cnt = 1; cnt <= T; cnt++){
    81         if (cnt != 1) printf("
    ");
    82         gets(s);
    83         init();
    84         printf("Scenario #%d:
    ", cnt);
    85         solve();
    86     }
    87     return 0;
    88 }
    View Code
  • 相关阅读:
    Android底层开发之红外遥控驱动移植
    OC的动态继承编译机制
    Android 的Recovery机制
    JStorm中的并行( parallelismction )介绍
    windows编译ffmpeg出现gcc is unable to create an executable file 的普通情况
    Yii2高速构建RESTful Web服务功能简单介绍
    APK防反编译技术
    Partition(hdu4651)2013 Multi-University Training Contest 5----(整数拆分一)
    JSP简单练习-上传文件
    ios+openflow 问题
  • 原文地址:https://www.cnblogs.com/KimKyeYu/p/3395034.html
Copyright © 2011-2022 走看看