zoj 2013 Changsha Regional Online Contest C E G H J 题(二)

2014-11-23 23:21:15 · 作者: · 浏览: 10
%%\n",h,s*100,v*100);
}
else if(str=="HSL")
{
scanf("%lf %lf%% %lf%%",&h,&s,&l);
Converting_HSL_to_RGB();
Convert_RGB_to_HSV();
printf("HSV %.lf %.lf%% %.lf%%\n",h,s*100,v*100);
}
else
{
cout<
char sb[1000];
gets(sb);
puts(sb);
}
}
else
{ // HSL
cin>>str;
if(str=="RGB")
{
scanf("%lf %lf %lf",&r,&g,&b);
Convert_RGB_to_HSL();
printf("HSL %.lf %.lf%% %.lf%%\n",h,s*100,l*100);
}
else if(str=="HSV")
{
scanf("%lf %lf%% %lf%%",&h,&s,&v);
Converting_HSV_to_RGB();
Convert_RGB_to_HSL();
printf("HSL %.lf %.lf%% %.lf%%\n",h,s*100,l*100);
}
else
{
cout<
char sb[1000];
gets(sb);
puts(sb);
}
}
}
return 0;
}
题目:E Travel by Bike
注意一下精度,签到题
#include
#include
#include
#include
#include
using namespace std;
#define eps 1e-12
string s[7]={"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
int day[7]={8,8,8,8,8,4,4};
int main()
{
string str;
while(cin>>str)
{
double v,l;
cin>>l>>v;
double week=v*(5*8+2*4);
int now=0;
for(int i=0;i<7;i++)
if(s[i]==str)
now=i;
int tmp=l/week;
l-=tmp*week;
if(l
{
cout<
continue;
}
while(l-day[now%7]*v>eps)
{
l-=day[now%7]*v;
now++;
now%=7;
}
cout<
}
return 0;
}
题目:G Goldbach
当时比赛的写了个n^2的代码,sb了,判断一下去重就 ok
#include
#include
#include
#include
#include
#include
using namespace std;
#define maxn 80010
vectorprime;
int add[maxn];
int multi[maxn];
bool vis[maxn];
bool sq(int x)
{
int sqr=(int)sqrt(x+0.0);
return sqr*sqr==x ;
}
void init()
{
memset(add,0,sizeof(add));
memset(multi,0,sizeof(multi));
prime.clear();
memset(vis,true,sizeof(vis));
vis[0]=vis[1];
for(int i=2;i
if(vis[i])
{
prime.push_back(i);
for(int j=2*i;j
vis[j]=false;
}
//printf("%d %d\n",prime.size(),prime[prime.size()-1]);
for(int i=0;i
for(int j=i;j
{
add[prime[i]+prime[j]]++;
if(prime[i]*prime[j]
multi[prime[i]*prime[j]]++;
}
}
int main()
{
init();
int n;
while(scanf("%d",&n)!=EOF)
{
int ans=0;
if(vis[n]) // 由一个素数组成
ans++;
ans+=add[n];
ans+=multi[n];
int tmp=0;
for(int i=0;i
{
ans+=multi[n-prime[i]];//这种情况唯一
tmp+=add[n-prime[i]]; // 尽量算3遍
if(prime[i]*3==n)
tmp+=2; //三个相同素数的和,上面只算了一次,+2
else if(!((n-prime[i])&1) && vis[(n-prime[i])/2] )
tmp++; // 两个相同素数的和加一个不同素数,上面算了2次
if(n%pr