第一题,普及-,通过观察发现最多只需要改两位数字。这题没发现什么技巧,就考逻辑思维吧。
主要分了三类,虽然可能不是最优的分类,但是大概也只敲了半个小时吧,代码有点长
第一类 month>=20,第二类 month正常,第三类 month为0,第四类,month在13到19之间
一遍过的哦~~
#include<bits/stdc++.h>
using namespace std;
#define ll long long
string s;
int month,day;
int ans;
int main()
{
cin>>s;
int num1=s[0]-'0',num2=s[1]-'0',num3=s[3]-'0',num4=s[4]-'0';
month=10*num1+num2;
day=10*num3+num4;
if(month>=20)//第一位肯定要改 改成1或0 改为1时可能出现10 11 12;改成0时为1~9月
{
ans++;
if(num2==0||num2==1||num2==2)//num2为0时,只能是10月
//num2为1时,可以为11月或1月,显然1月能到31号,优先改为1月,num2为2时,可以为12月或2月,显然12月能到31号,优先改为12月
{
if(day>31)
ans++;
}
else if(num2==3||num2==5||num2==7||num2==8)//num2>2,第一位只能改为0,再分为31天 30天的讨论
{
if(day>31)
ans++;
}
else
{
if(day>30)
ans++;
}
}
else if(month>0&&month<=12)//如果月份正常,最多改一位就行
{
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
{
if(day>31)
ans++;
}
else if(month==2)
{
if(day>28)
ans++;
}
else
{
if(day>30)
ans++;
}
}
else if(month==0)
{
if(day>31)//月份一定改一位,优先1月
ans+=2;//日也要改
else
ans++;
}
else//month在13到19之间 优先看日
{
if(day<=31)
ans++;
if(day>31)
ans+=2;
}
cout<<ans;
return 0;
}
第二题,普及-,应该是一道考察排序的问题(插入排序),这里由于每次插入新的元素时都需要提前获得元素要插入的位置,所以应该是用二分查找,最后的时间复杂度应该为nlogn。
而且c++里内置的函数很多,温故而知新~不用自己手搓
最后代码如下(一遍过!)
#include<bits/stdc++.h>
using namespace std;
#define ll long long
vector<ll> a;
ll n,w;
ll grade;
bool compare(ll a,ll b)
{
return a>b;
}
int main()
{
cin>>n>>w;
for(int i=1;i<=n;i++)
{
ll cur=i*w/100;
if(cur==0)
cur=1;
cin>>grade;
auto found=lower_bound(a.begin(),a.end(),grade,compare);
a.insert(found,grade);
cout<<a[cur-1]<<' ';
}
return 0;
}
啊啊啊啊啊中午没睡好觉,下午头疼o(╥﹏╥)o 这么短的代码也敲了好久。
简单说几个要点吧:
第一,lower_bound这个函数返回的是目标元素的下一个位置(这里要自己定义compare函数,如果升序的话就是a<b,降序的话就是a>b),如果最后查找到的位置是在begin()或者end(),会直接返回。
第二,insert的插入是把指定元素插入到指定的位置,其余元素自动后移~如果是begin(),就是插到开头,是end()就是结尾。
最后,题目中所讲的可能获奖人数比计划多一点都不影响分数线,只需要返回排名第i*w的人的分数即可。
哈哈哈哈 当日记写得了。今天早上一节大物,讲得磁场中带电粒子和导体棒的受力 高中学过,听起来没什么压力,就是有点困。
后面一直呆在图书馆,10-18点大概是这么个时间,搞程序设计 然后刷了两道题。真的看电脑太久了会很累,我下午去买了一杯咖啡,然后坐在室外的小圆桌上看了会风景,但是疲劳缓解不了,吃饭的时候还头痛。晚上7点到十点又是程序设计,学长的代码我不会改,因为全是c++,类的知识太多了,没学过。今晚是真的碌碌无为,就好像回到了去年刷头歌一下午一题都做不出来,好像回到了高中数学大题做一中午都做不出来的时候。我好像面对自己无法解决的困难习惯焦虑,我把自己的弱小看作理所当然,期望别人来拯救我。
还有人际关系也是一塌糊涂。除了跟舍友关系很好,跟异性真的合不来一点,线上聊天习惯猜忌,线下碰面又觉得尴尬。而且对于在乎我的人不喜欢搭理。
有时候真的觉得一个人挺好。我必须得有明确的目标,我应该有不顾一切努力前进的勇气,我应该有不顾他人眼光做好自己的决心,我应该有同困难死磕到底绝不放弃绝不焦虑的信心☺我充分爱自己,我没有什么牵挂,我只希望自己能够努力,不断成为理想中的自己🥺
对了!怎么能忘了今晚舍友给的关怀呢
明天加油!
睡觉啦~