首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

2013 ACM/ICPC Asia Regional Changsha Online - C、E 答题报告

2013-09-24 
2013 ACM/ICPC Asia Regional Changsha Online - C、E 解题报告2013 ACM/ICPC Asia Regional Changsha Onli

2013 ACM/ICPC Asia Regional Changsha Online - C、E 解题报告

2013 ACM/ICPC Asia Regional Changsha Online - C  Color Representation Conversion


考查:耐心、细心、基础能力

看懂题目就不成问题了,另外就只有公式装换和精度处理了。

题目给出四个转换公式:

HSV—>RGB

HSL—>RGB

RGB—>HSV

RGB—>HSL

我们要做到的装换模式有  种,转换模式方式如下:

HSV—>RGB:直接装换

HSL—>RGB:直接装换

RGB—>HSV:直接转换

RGB—>HSL:直接转换

HSV—>HSL:HSV—>RGB、RGB—>HSL

HSL—>HSV:HSL—>RGB、RGB—>HSV

#include<iostream>#include<cstdio>#include<string>using namespace std;struct node   //一周之类每天的信息{    string day;   //时间标记    int time;   //工作时间}bick[7]={"Monday",8,"Tuesday",8,"Wednesday",8,"Thursday",8,"Friday",8,"Saturday",4,"Sunday",4};int main(){    string s;    int L;    double speed,sumtime;    int day;    int i,j;    while(cin>>s>>L>>speed)    {        for(i=0;i<7;i++)        if(s==bick[i].day)break;        day=i;        sumtime=(double)L/speed;        if((int)sumtime>=48)        sumtime-=(int)sumtime/48*48;   //每周可以工作48小时        if(sumtime==0)   //刚好n周走完        {            day=i-1;            if(day<0)day=6;        }        else        while(sumtime>0)   //剩余时间,论坛提算        {            if(day>6)day=0;            sumtime-=bick[day].time;            if(sumtime<=0)break;            day++;        }        cout<<bick[day].day<<endl;   //直接输出对应日子标记    }    return 0;}


热点排行