题目链接:

D - The Lucky Week

 ZOJ - 3939

题目大意:幸运的星期指,星期一为每个月的1 or 11 or 21号。给出第一个幸运星期的时间,问从当前的日起开始。第n个的日期。

具体思路:我们通过打表可以发现,每隔400年,当前的这一天的星期和400年后的是相同的。所以我们先求出一个400年有多少个幸运的天数(1600-1999),然后判断当前的年份如果以1600年开始的话,往后n个幸运日是多少,然后再做差以原来的起点输出就可以了。

AC代码:

 #include<bits/stdc++.h>
using namespace std;
# define ll long long
# define inf 0x3f3f3f3f
const int maxn = 2e6+;
struct node
{
ll y,m,d;
node() {}
node(ll xx,ll yy,ll zz)
{
y=xx;
m=yy;
d=zz;
}
} ;
//bool check(ll y,ll m,ll d)
//{
// ll a;
// if(m==1||m==2)
// {
// m+=12;
// y--;
// }
// if((y<1752)||(y==1752&&m<9)||(y==1752&&m==9&&d<3))
// a=(d+2*m+3*(m+1)/5+y+y/4+5)%7;
// else
// a=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
// if(a==0)
// return true;
// return false;
//}
bool check(int year,int month,int day)
{
if(month < ) { year -= ; month += ; }
int c = int (year / ), y = year - * c;
int w = int ( c / ) - * c + y + int ( y / ) +( * ( month + ) / ) + day - ;
w = (w % + ) % ; if (w == ) return ;
else return ;
}
vector<node>q;
map<ll,ll>vis;
void init(){
for(ll i=;i<=+-;i++){
for(ll j=;j<=;j++){
if(check(i,j,)){
q.push_back(node(i,j,));
vis[i*+j*+]=q.size()-;
}
if(check(i,j,)){
q.push_back(node(i,j,));
vis[i*+j*+]=q.size()-;
}
if(check(i,j,)){
q.push_back(node(i,j,));
vis[i*+j*+]=q.size()-;
}
}
}
}
int main()
{
init();
int T;
scanf("%lld",&T);
while(T--)
{
ll y,m,d,n;
scanf("%lld %lld %lld %lld",&y,&m,&d,&n);
ll tmp1,tmp2;
tmp1=(y-)%+;
tmp2=tmp1*+m*+d;
int pos=vis[tmp2];
int t1=(pos+n-)%q.size();
int t2=(pos+n-)/q.size();
printf("%lld %lld %lld\n",y+q[t1].y-q[pos].y+t2*,q[t1].m,q[t1].d);
}
return ;
}

 

D - The Lucky Week ZOJ - 3939 (思维)的更多相关文章

  1. ZOJ - 3939 The Lucky Week(日期循环节+思维)

    Edward, the headmaster of the Marjar University, is very busy every day and always forgets the date. ...

  2. ZOJ 3939 The Lucky Week (暴力找规律)

    题意:给定一个幸运日,求第 k 个幸运日是多少. 析:由于闰年,每400肯定会循环一次,所以我们就可以先找出每400年会有多少幸运日,是2058个,然后再暴力. 代码如下: #pragma comme ...

  3. ZOJ 2975 思维

    题意 给出一个矩形 问在其中存在多少子矩形 其四个角上的字母是一样的 一开始暴力写了一发 先枚举行数 再枚举两个列数 再向下枚举行数 判断能否 没有意外的超时了 后来想了想 当我们已经确定两个列数的时 ...

  4. zoj Candies 思维

    http://acm.zju.edu.cn/changsha/showProblem.do?problemId=31 题意: 给你n个非负整数,然后输入n个x[i],x[i] == -1表示第i个数不 ...

  5. Lucky Sorting(CodeForces-109D)【思维】

    题意:给出一组数,要求从小到大排序,并且排序的过程中,发生交换的两个数至少一个为幸运数(十进制位均为4或7),问能否在(2×n)次交换内完成排序,如果能,输出交换的方案(不要求步骤数最少). 思路:首 ...

  6. The 13th Zhejiang Provincial Collegiate Contest(2016年浙江省赛)

      前4道水题就不说了,其中我做了C题,1Y,小心仔细写代码并且提交之前得确认无误后提交才能减少出错率. 结果后面2题都由波神做掉,学长带我们飞~ 终榜 官方题解   ZOJ 3946 Highway ...

  7. 思维+multiset ZOJ Monthly, July 2015 - H Twelves Monkeys

    题目传送门 /* 题意:n个时刻点,m次时光穿梭,告诉的起点和终点,q次询问,每次询问t时刻t之前有多少时刻点是可以通过两种不同的路径到达 思维:对于当前p时间,从现在到未来穿越到过去的是有效的值,排 ...

  8. ZOJ 3233 Lucky Number

    Lucky Number Time Limit: 5000ms Memory Limit: 32768KB This problem will be judged on ZJU. Original I ...

  9. ZOJ 4124 拓扑排序+思维dfs

    ZOJ - 4124Median 题目大意:有n个元素,给出m对a>b的关系,问哪个元素可能是第(n+1)/2个元素,可能的元素位置相应输出1,反之输出0 省赛都过去两周了,现在才补这题,这题感 ...

随机推荐

  1. Unicode 与 Unicode Transformation Format(UTF-8 / UTF-16 / UTF-32)

    ASCII(American Standard Code for Information Interchange):早期它使用7 bits来表示一个字符,总共表示27 = 128个字符:后来扩展到8 ...

  2. ThymeLeaf的eclipse插件安装

    “Help”----“Install New Software...” 输入: http://www.thymeleaf.org/eclipse-plugin-update-site/ 一路Next, ...

  3. JS引用类型

    a,b都是引用类型,它们实际上指向同一个内存空间,同呼吸共命运

  4. Tomcat 一般异常处理方式

    1.启动时出现: Exception starting filter struts2 java.lang.NoClassDefFoundError: org/apache/commons/lang3/ ...

  5. Luogu P4009 汽车加油行驶问题

    题目链接 \(Click\) \(Here\) 分层图..好长时间没写差点要忘了\(hhhhh\),其实思路还是很明了的. 注意需要强制消费. #include <bits/stdc++.h&g ...

  6. 网络I/O模型总结

    把网络IO模型整理了一下,如下图

  7. 在中国使用苹果Mac电脑的都是些什么人?

    来源:PConline 资讯 文章收录于:风云社区(提供上千款各类Mac软件下载)   (图片来源于互联网分享,如涉及版权问题请联系作者删除) 在中国用Mac的都是什么人?腾讯CDC用户研究中心对 Q ...

  8. net-snmp开发教程

    目录 1................................................................................................ ...

  9. 搭建vscode+vue环境

    转自:https://blog.csdn.net/mao834099514/article/details/79138484 一.安装vue.js 1.简介 Vue.js(读音 /vjuː/, 类似于 ...

  10. centos6.5mini版安装及配置

    1.安装选择界面,这个选第一个 2.镜像完整性检查,一般都是跳过SKIP 3.欢迎界面,进入安装了 4.语言选择,这个是没有中文的,用默认的英文就行 5.键盘布局,用默认的us 6.这里会给一个警告, ...