hpu第五届acm比赛
描述
CCC老师的生日是YY年MM月DD日,他想知道自己出生后第一万天纪念日的日期(出生日算第0天)。
格式
输入格式
从文件的第一行分别读入YY,MM,DD其中1949<=YY<=2006,日期绝对合法。
输出格式
输出文件只有一行,即CCC老师生日第一万天以后的日期,格式为 “Y-M-D”。
样例1
样例输入1[复制]
1979 4 16
样例输出1[复制]
2006-9-1
题解:坑点在,2月29,1月1,12月31,
代码:#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
#define mem(x,y) memset(x,y,sizeof(x))
#define yea(x) (x%400==0||(x%4==0&&x%100!=0))
int m[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int getd(int nn,int yy,int rr){
int d=0;
if(yea(nn))m[2]=29;
for(int i=1;i<yy;i++)d+=m[i];
d+=rr;
m[2]=28;
// printf("%d\n",d);
return d;
}
int main(){
int N,nn,yy,rr;
while(~scanf("%d%d%d",&nn,&yy,&rr)){
int d=10000;
m[2]=28;
if(yea(nn))d-=(366-getd(nn,yy,rr));
else d-=(365-getd(nn,yy,rr));
int y,mon,r;
for(y=nn+1;d>=365;y++){
if(yea(y))d-=366;
else d-=365;
}
if(yea(y))m[2]=29;
if(d==0){
y--;
mon=12;r=31;
}
else for(mon=1;mon<13;mon++){
if(d>m[mon])d-=m[mon];
else if(d==m[mon]){
r=m[mon];
break;
}
else{
r=d;
break;
}
}
printf("%d-%d-%d\n",y,mon,r);
}
return 0;
}
1136: HH生病了
时间限制: 1 Sec 内存限制: 128 MB 提交: 332 解决: 96 [提交][状态][讨论版]
题目描述
HH很不幸的感冒了,只好去校医院去挂盐水,挂盐水的时候,他发现盐水滴起来有规律,先是滴一滴,停一下;然后滴二滴,停一 下;再滴三滴,停一下...,现在有一个问题:这瓶盐水一共有VUL毫升,每一滴是D毫升,每一滴的速度是一秒(假设最后一滴不到D毫升,则花费的时间也 算一秒),停一下的时间也是一秒这瓶水什么时候能挂完呢?
输入
输入数据占一行,由VUL和D组成,其中0< D< VUL< 5000。
输出
请输出挂完盐水需要的时间。
样例输入
10 1样例输出
13代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define mem(x,y) memset(x,y,sizeof(x))
using namespace std;
int main(){
double v,d;
while(~scanf("%lf%lf",&v,&d)){
int sec=;
for(int i=;v>;i++){
if(v>i*d){
sec+=i+;
v-=i*d;
}
else{
sec+=(int)(0.99999999+v/d);
v=;
break;
}
}
printf("%d\n",sec);
}
return ;
}HH的随机数
时间限制: 1 Sec 内存限制: 128 MB 提交: 465 解决: 71 [提交][状态][讨论版]
题目描述
HH想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
输入
有2行,第1行为1个正整数,表示所生成的随机数的个数: N 第2行有N个用空格隔开的正整数,为所产生的随机数。
输出
也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
样例输入
10 20 40 32 67 40 20 89 300 400 15样例输出
8 15 20 32 40 67 89 300 400题解:。。。结尾不能有换行。。。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define mem(x,y) memset(x,y,sizeof(x))
using namespace std;
int main(){
int N,m[110],vis[110];
while(~scanf("%d",&N)){
// mem(vis,0);
for(int i=0;i<N;i++)scanf("%d",m+i);
sort(m,m+N);
int k=unique(m,m+N)-m;
/*int k=N;
for(int i=1;i<N;i++){
if(m[i]==m[i-1])k--,vis[i]=1;
}*/
printf("%d\n",k);
/*for(int i=0;i<N;i++){
if(vis[i])continue;
if(i)printf(" ");
printf("%d",m[i]);
}*/
for(int i=0;i<k;i++){
if(i)printf(" ");
printf("%d",m[i]);
}
// puts("");
}
return 0;
}
HH实习
时间限制: 1 Sec 内存限制: 128 MB 提交: 51 解决: 35 [提交][状态][讨论版]
题目描述
这学期到了十五周了,HH突然要去实训中心实习了,想到要拿着钳子,锯子什么的,头就有点大了,因为它挺好玩的,但是,也是很累的,看着学弟坐在机房悠闲地敲着代码,HH学长决定要让他们好好忙忙,这道题就是为了你们而出的,学弟们,加油! 问题很简单,只是需要动手就够了,要求是,给你n米长的钢筋,钢筋大家都知道吧?就是一根钢条,钢条大家都知道吧?不知道的回家问麻麻,目的很简单,让你自己动手把这一根很长的钢筋切成M段,保证他们中的任意三段都不能构成三角形,听起来会感觉乱乱的,其实我要的答案很简单,就是你能把这根钢筋截成多少条,条数要最多,还有就是长度不能少于1米。 简单吧,大家抓紧时间AC吧。
输入
第一行输入一个T,接下来T行,每行有一个数N(4<=N<=1000000);
输出
输出占一行,对应每个N输出最多的条数M
样例输入
2 7 144样例输出
4 10题解:斐波那契,由于不少于1米,所以就从1开始,三角形不满足条件a+b<=c,可知当等于c的时候耗材最小,所以就是个斐波那契;
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define mem(x,y) memset(x,y,sizeof(x))
using namespace std;
int dp[10010];
int main(){
int T,N;
mem(dp,0);
dp[1]=1;dp[2]=2;
for(int i=3;;i++){
dp[i]=dp[i-1]+dp[i-2];
if(dp[i]>1000000)break;
}
scanf("%d",&T);
while(T--){
scanf("%d",&N);
int i;
for(i=1;;i++){
if(N<dp[i])break;
N-=dp[i];
}
printf("%d\n",i);
}
return 0;
}
HH的米5
时间限制: 1 Sec 内存限制: 128 MB 提交: 93 解决: 28 [提交][状态][讨论版]
题目描述
HH新买了一台手机小米5,他给自己的新手机设置了一个高端大气上档次的屏幕保护锁(其实就是一个9宫锁屏),保护锁有一个特点,就是需要一笔画下来才能解锁,HH就在想,如果给定N个点和M条边,那么该图是否可以通过一笔将该图画下来呢?他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。 规定,所有的边都只能画一次,不能重复画。
输入
第一行只有一个正整数T(T<=10)表示测试数据的组数。 每组测试数据的第一行有两个正整数N,M(N<=1000,M<=2000),分别表示这个画中有多少个顶点和多少条连线。(点的编号从1到N) 随后的M行,每行有两个正整数A,B(0<a,b<n),表示编号为a和b的两点之间有连线。< p="">
输出
如果存在符合条件的连线,则输出"Yes", 如果不存在符合条件的连线,输出"No"。
注意输出不包含引号!
样例输入
2 4 3 1 2 1 3 1 4 4 5 1 2 2 3 1 3 1 4 3 4样例输出
No Yes题解:欧拉回路,这个不回到源点
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define mem(x,y) memset(x,y,sizeof(x))
using namespace std;
const int MAXN=1010;
int pre[MAXN],usd[MAXN];
void initial(){
mem(pre,0);mem(usd,0);
}
int find(int x){
return pre[x]==x?x:find(pre[x]);
}
void merge(int a,int b){
if(!pre[a])pre[a]=a;
if(!pre[b])pre[b]=b;
int f1,f2;
f1=find(a);f2=find(b);
if(f1!=f2)pre[f2]=f1;
}
int main(){
int T,N,M;
scanf("%d",&T);
while(T--){
initial();
scanf("%d%d",&N,&M);
int a,b;
while(M--){
scanf("%d%d",&a,&b);
merge(a,b);
usd[a]++;usd[b]++;
}
int flot=1,cnt=0,temp=0;
for(int i=1;i<=N;i++){
if(usd[i]&1)temp++;
if(pre[i]==i||pre[i]==0)cnt++;
}
// printf("***%d %d\n",temp,cnt);
if(cnt!=1||temp!=2)flot=0;
if(flot)puts("Yes");
else puts("No");
}
return 0;
}
hpu第五届acm比赛的更多相关文章
- ACM比赛经验
这篇博客是转别人的,觉得很好,希望能在以后的现场赛中用上:ACM比赛经验 推荐此篇文章打印,与模板放在一起. 1. 比赛中评测会有些慢,偶尔还会碰到隔10分钟以上才返回结果的情况,这段时间不能等结果, ...
- “玲珑杯”ACM比赛 Round #12题解&源码
我能说我比较傻么!就只能做一道签到题,没办法,我就先写下A题的题解&源码吧,日后补上剩余题的题解&源码吧! A ...
- “玲珑杯”ACM比赛 Round #19题解&源码【A,规律,B,二分,C,牛顿迭代法,D,平衡树,E,概率dp】
A -- simple math problem Time Limit:2s Memory Limit:128MByte Submissions:1599Solved:270 SAMPLE INPUT ...
- ACM比赛_注意
ACM比赛_注意: 比赛前: 1.前一天早一点睡觉 2.避免参加激烈的活动,以免比赛时精力不足; 3.少喝水,并提前上厕所; 4.把账号,密码都准备好,放在txt中 5.提前创建多个程序(etc.10 ...
- angry_birds_again_and_again(2014年山东省第五届ACM大学生程序设计竞赛A题)
http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2877 题目描述 The problems ca ...
- “玲珑杯”ACM比赛 Round #19 B -- Buildings (RMQ + 二分)
“玲珑杯”ACM比赛 Round #19 Start Time:2017-07-29 14:00:00 End Time:2017-07-29 16:30:00 Refresh Time:2017-0 ...
- “玲珑杯”ACM比赛 Round #1
Start Time:2016-08-20 13:00:00 End Time:2016-08-20 18:00:00 Refresh Time:2017-11-12 19:51:52 Public ...
- “玲珑杯”ACM比赛 Round #18
“玲珑杯”ACM比赛 Round #18 Start Time:2017-07-15 12:00:00 End Time:2017-07-15 15:46:00 A -- 计算几何你瞎暴力 Time ...
- ACM比赛技巧
一.语言是最重要的基本功 无论侧重于什么方面,只要是通过计算机程序去最终实现的竞赛,语言都是大家要过的第一道关.亚洲赛区的比赛支持的语言包括C/C++与JAVA.笔者首先说说JAVA,众所周知,作 ...
随机推荐
- Android开发中怎样调用系统Email发送邮件(多种调用方式)
在Android中调用其他程序进行相关处理,几乎都是使用的Intent,所以,Email也不例外,所谓的调用Email,只是说Email可以接收Intent并做这些事情 我们都知道,在Android中 ...
- Windows平台下C++插件系统实现的几个关键技术问题及其解决思路
根据我的实践,在Windows平台下设计并实现一个C++插件系统,需要解决几个关键技术问题.下面我谈谈需要解决的几个关键技术问题以及我想到的简单的解决思路.由于我主要专注于Windows平台C++程序 ...
- java 面试 复习 II
1 break 多重 循环跳出当前循环到上层循环再执行. 如若想跳出多重循环可以使用标号 2 byte,short,char都可以隐含转换为int.可以用在switch 表达式.long和str ...
- hdu4336 Card Collector 状态压缩dp
Card Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
- POJ 3228Gold Transportation(二分+最大流)
题目地址:POJ3288 这个题跟之前的一道题混了,感觉是一样的,所以连想都没怎么想就拆点然后求最短路然后二分求最大流了.结果连例子都只是,还一直以为又是哪里手残了..结果看了看例子,手算也确实不正确 ...
- Google启封后依然不能用
门事件周年纪念日过后一段时间,狗狗启封了,但撸主的狗狗仍旧不能用,突然想起来之前帆樯时候改动了某些配置,比方hosts文件,这个文件的路径为:C:\Windows\System32\drivers\e ...
- #, about:blank,javascript:路径比较
试了一下在<a>,<img>,<iframe>中用#,about:blank和javascript: 代码如下: <!Doctype html> < ...
- 关于PagedDataSource分页属性与DataSet和DataTable详解
Asp.net提供了三个功能强大的列表控件:DataGrid.DataList和Repeater控件,但其中只有DataGrid控件提供分页功能.相对DataGrid,DataList和Repeate ...
- VS2010 .net4.0 登录QQ 获取QQ空间日志 右键选中直接打开日志 免积分 源码下载
代码有一部分是原来写的 最近翻代码 看到了 就改了一下 CSDN上传源码 上传了几次都没 成功 郁闷 不知道怎么回事 上传不了 想要的留 邮箱 或加群77877965 下载地址在下面 演示地址 ...
- STL中copy算法
STL中通过使用copy函数以提供一种方便的方式来输出容器中的元素.函数copy作为泛型算法的一部分,任何容器类型都可以使用.由于我们需要频繁的初始容器的元素,因此在继续讨论容器之前,先学习一下cop ...