当前位置: 首页 > wzjs >正文

免费做二维码网站设计公司网站运营

免费做二维码网站,设计公司网站运营,贵阳网站改版,深圳网站定制 开发前言 今天做了不少题,但是感觉都太水了,深思熟虑之下主播决定拿出两道相对不那么水的题来说一下(其实还是很水)。 两道问题,一道是日期问题(模拟),一道是区间合并问题。 日期差值 …

前言

今天做了不少题,但是感觉都太水了,深思熟虑之下主播决定拿出两道相对不那么水的题来说一下(其实还是很水)。

两道问题,一道是日期问题(模拟),一道是区间合并问题。


日期差值


分析

这样的问题其实就是模拟,但是我们可以发现在模拟的过程中需要处理年份,月份,天数,进位等情况,如果都去用if - else嵌套去写的话那未免太不优雅了。

所以主播带了一种可以优雅的处理这种问题的方法。

这种方法是开始先将日期转化成从0001-01-01到此日期经过了多少天,随后两个数字相减就可以了,怎么样,是不是很简单。

那么我们如何来计算有多少天呢,先来试着按照每一天来枚举,可以发现总共枚举的话需要枚举10000 * 355 * 100次,算下来是三点五亿,常数小的话是有可能过的,但是显然我们不能去赌能不能过,我们来换一种方式枚举。

怎样枚举呢?我们先计算出这一年的前面所有年有多少天(这个好算,枚举每一年,平年就+355, 闰年+356),随后我们再枚举这个月前面所有的月份有多少天,用一个数组来存储每个月有多少天,如果是2月的话需要判断一下年份是否是闰年。

超级简单,没错,主包就是这么水……


代码

#include<iostream>
using namespace std;
int mouths[] ={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; //每月的天数
int y1, y2, m1, m2, d1, d2;bool is_leap(int year)
{return year % 4 == 0 && year % 100 || year % 400 == 0;
}int mouthDay(int year, int mouth)
{if(mouth == 2) return mouths[2] + is_leap(year);return mouths[mouth];
}int yearDay(int year)
{return 365 + is_leap(year);
} int dayNums(int year, int mouth, int day)
{int l = 0;for(int i = 1; i < year; i++)l += yearDay(i);for(int i = 1; i < mouth; i++)l += mouthDay(year, i);l += day;return l;
}int main()
{while(~scanf("%04d%02d%02d\n%04d%02d%02d", &y1, &m1, &d1, &y2, &m2, &d2))printf("%d\n", abs(dayNums(y2, m2, d2) - dayNums(y1, m1, d1)) + 1);return 0;
}

挤牛奶


分析

这个就更不用多说了,区间合并,主包记得自己最开始学算法的时候第一个真正理解的就是区间合并

具体过程就是先排序,随后每次都用区间去和前一个区间比较能否合并,区间能合并的条件一般是

a[i].r >= a[i].l

特殊情况可能需要左端加一再去比较(就比如我们之前的拿到水管的题目)。

顺便提一嘴这道题用差分前缀和也是可以写的。


代码

// 区间合并
#include<iostream>
#include<vector>
#include<algorithm>
#define s second
#define f first
using namespace std;
typedef pair<int, int> PII;
const int N = 5010;
int n;
PII nums[N];
int onTime, unTime;int main()
{scanf("%d", &n);for(int i = 0; i < n; i++)scanf("%d%d", &nums[i].f, &nums[i].s);sort(nums, nums + n);vector<PII> vtr;vtr.push_back(nums[0]);for(int i = 1; i < n; i++)if(vtr.back().s  >= nums[i].f) vtr[vtr.size() - 1].s = max(vtr[vtr.size() - 1].s, nums[i].s);else vtr.push_back(nums[i]);for(int i = 0; i < vtr.size(); i++)onTime = max(onTime, vtr[i].s - vtr[i].f); //int t = vtr[0].s;for(int i = 1; i < vtr.size(); i++)unTime = max(unTime, vtr[i].f - t), t = vtr[i].s;printf("%d %d", onTime, unTime);return 0;
}

总结

 主包要去休息了,实在是困得不行了,打了一天瞌睡QAQ。


文章转载自:

http://k9QSiE2a.cthrb.cn
http://YS3ASZcH.cthrb.cn
http://rt4UW2de.cthrb.cn
http://A4H6meAI.cthrb.cn
http://dBTSDThd.cthrb.cn
http://IT2oQXcK.cthrb.cn
http://GAWFHwfj.cthrb.cn
http://ZB2dKFEQ.cthrb.cn
http://YZu08fLR.cthrb.cn
http://BIaIlsws.cthrb.cn
http://hJghEyf2.cthrb.cn
http://elPcGC5C.cthrb.cn
http://91pcQTJP.cthrb.cn
http://rIJLtACB.cthrb.cn
http://7XdTAAgf.cthrb.cn
http://gROe50sD.cthrb.cn
http://1mLkkoPX.cthrb.cn
http://3lHVj7gR.cthrb.cn
http://5jqQRZGH.cthrb.cn
http://Qo82ZFvV.cthrb.cn
http://Eq6gZFDn.cthrb.cn
http://kOli1FGf.cthrb.cn
http://hNLUg6wa.cthrb.cn
http://XczEWzA2.cthrb.cn
http://ABei1fhh.cthrb.cn
http://dDgei5Dx.cthrb.cn
http://2oyna6nA.cthrb.cn
http://Le6MDgvF.cthrb.cn
http://obkMWkNg.cthrb.cn
http://a5EMpP9W.cthrb.cn
http://www.dtcms.com/wzjs/655948.html

相关文章:

  • 自己做服务器的网站网站集群怎么做
  • 30秒网站建网站需要了解什么
  • 499全包网站建设app对接网站登录要怎么做
  • 做一个公司网站一般多少钱seo岗位有哪些
  • 广州建设厅电工网站施工企业报验资质清单
  • 做房产网站不备案可以吗企业网站源码排行
  • 网站建设需要入无形资产吗百度网站前三名权重一般在多少
  • 怎么用wordpress建手机网站微网站的链接怎么做
  • 长沙住建信息中心网站网页图片不清晰怎么办
  • 网站开发需要什么基础北京各大网站推广平台哪家好
  • 做网站前端后端ui什么意思十大SEO网站外链建设误区
  • 代做毕业设计网站多少钱软件公司运营是做什么的
  • 专业商城网站搭建费用网站建网站建设企业电话
  • 河北衡水建设网站公司购物平台网站建设
  • 上海网站建设选缘魁-企查深圳网站优化
  • 贵美商城网站的首页怎么做代码合肥网站设计机构
  • 小型企业的网站建设论文网络服务器配置与管理试题
  • 西安城乡住房建设厅网站校友录网站开发设计
  • 网站权重6了该则么做优化方案怎样查别人网站的外链
  • 自媒体专用网站免费关键词查网址
  • 美容培训东莞网站建设wordpress忘记密码ftp
  • 网站开发人员是什么找设计工作哪个网站好
  • 我想在网站做宣传怎么弄html5做图网站
  • 咸阳做网站的公司电话sem优化和seo的区别
  • 站长统计免费下载学校做网站难吗
  • phpstudy搭建网站教程苏宁网站优化与推广
  • 网站提升收录大学网站建设考核办法
  • 俄语网站建站用猴子做标志起网站名叫什么好
  • 企业 php网站建设wordpress去除帮助
  • 做网站注意哪方面国外时尚设计网站