今天第一场个人训练赛的题目有点恐怖啊,我看了半个小时多硬是一道都不会写。我干脆就直接补题去了。。。。

先补的都是简单题,难题等我这周末慢慢来吧。。。

                                     A Calandar


Time Limit: 1 Second      Memory Limit: 65536 KB

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4113

题目意思很明确:给出一个日期和对应的星期几,求出另一个所给的日期是星期几。

题目已经简化了,12个月,每月30天,一周5天,注意一下。

然而在补题的时候,我wa了好几发。。理了一下思路后,重写了以下a了。

虽说是签到题,但需要注意的有两点,一个是取模后需要注意为0的情况,一个是小于零的情况。

代码如下:

 #include <iostream>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
string Q[]={"","Monday", "Tuesday", "Wednesday", "Thursday" ,"Friday"};
int main()
{
int T;
cin>>T;
while(T--)
{
string s;
ll y1,m1,d1,y2,m2,d2,k;
cin>>y1>>m1>>d1>>s>>y2>>m2>>d2;
ll dt=(y2-y1)*+(m2-m1)*+d2-d1;
dt=dt%;
if (dt<) dt+=;
for (int i=; i<=; i++)
{
if (Q[i]==s)
k=i;
}
k+=dt;
if (k%==) k=;
else k=k%;
cout<<Q[k]<<endl;
}
return ;
}

                                      C Wandering Robot


Time Limit: 1 Second      Memory Limit: 65536 KB

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4115

题意:机器人从原点按指令走,整个过程距离原点最远距离是多少,距离定义为abs(x1-x2)+abs(y1-y2)

一开始考虑的是最远是在第k次,后来发现不对,例如下面这组样例:

7 2

UUUDDDD

所以比较一下第一次和第k次哪个远就好了,中间的次数按周期算,1和k模拟就好

代码如下:

#include <iostream>
#include <bits/stdc++.h> using namespace std;
typedef long long ll; int main()
{
int T;
cin>>T;
while (T--)
{
string s;
ll n,k,x=,y=,ma1=-,ma2=-,ans;
scanf("%lld%lld",&n,&k);
cin>>s;
s=""+s;
for (int i=; i<=n; i++)
{
if (s[i]=='U') y++;
else if (s[i]=='D') y--;
else if (s[i]=='L') x--;
else if (s[i]=='R') x++;
ll cur=abs(x)+abs(y);
if (cur>ma1) ma1=cur;
}
x*=k-;
y*=k-;
for (int i=; i<=n; i++)
{
if (s[i]=='U') y++;
else if (s[i]=='D') y--;
else if (s[i]=='L') x--;
else if (s[i]=='R') x++;
ll cur=abs(x)+abs(y);
if (cur>ma2) ma2=cur;
}
if (ma1>ma2) ans=ma1;
else ans=ma2;
printf("%lld\n",ans);
}
return ;
}

D Game on a Graph

Time Limit: 1 Second      Memory Limit: 65536 KB

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4116

比赛的时候这道题我没看,队友敲的;

题意大概是说:有k个人玩游戏,分成1,2两组。游戏初始给出一个简单无向连通图,k个人周期依次操作,每次拿走一条边,仍然要保证图的联通,当取无边可取时(即目前状态取走任意一条边就会使图不再连通),该玩家所在的小组输掉游戏,游戏结束,输出赢家。

一开始觉得跟图的连通性有关,后来发现根本没有。保证n个点相连至少需要n-1条边,只需要求出可以去除几条边就完全可以了。同样注意取模后为0的情况,其他细节看代码吧。

代码如下:

#include <iostream>
#include <bits/stdc++.h> using namespace std;
typedef long long ll;
const int maxn=1e5+;
char a[maxn];
int main()
{
int T;
cin>>T;
while (T--)
{
ll k,n,m;
scanf("%lld",&k);
scanf("%s",a+);
scanf("%lld%lld",&n,&m);
for (int i=; i<=m; i++)
{
int x,y;
scanf("%d%d",&x,&y);
}
ll ov=m-n+;
ov%=k;
if (a[ov+]=='') printf("2\n");
else printf("1\n");
}
return ;
}

F Stones in the Bucket


Time Limit: 1 Second      Memory Limit: 65536 KB

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4118

这个题我敲了一半,然后队友接手直接过了,也不是很难;

题意:给你n堆石子,求出最少几次操作使得所有石子堆的石子个数相同。操作分两种:1。扔一个。 2。把一个石子从一堆移动到另一堆。

先判断需要扔的情况,注意扔的时候需要从最多的那一堆开始扔。

移动情况就是每堆与平均值的差了,记得除以2就行。

代码如下:

#include <iostream>
#include <bits/stdc++.h> using namespace std;
typedef long long ll;
const int maxn=1e5+;
ll a[maxn];
bool cmp(ll x,ll y)
{
return x>y;
}
int main()
{
int T;
cin>>T;
while (T--)
{
ll n,sum=,ave=,ans=;
scanf("%lld",&n);
for (int i=; i<=n; i++)
scanf("%lld",&a[i]),sum+=a[i];
ave=sum/n;
ll ov=sum-ave*n,t;
t=ov;
sort(a+,a++n,cmp);
for (int i=; i<=n; i++)
{
if (ov<=) break;
ll dt=a[i]-ave;
if (ov>=dt)
{
ov-=dt;
a[i]=ave;
}
else
{
a[i]-=ov;
ov=;
break;
}
}
for (int i=; i<=n; i++)
ans+=abs(a[i]-ave);
ans/=;
ans+=t;
printf("%lld\n",ans);
}
return ;
}

M Sekiro

Time Limit: 1 Second      Memory Limit: 65536 KB

 

题意很简单:死一次丢一半钱,n元钱,死k次,还剩多少?

注意特判。

代码如下:

#include <iostream>
#include <bits/stdc++.h> using namespace std;
typedef long long ll; int main()
{
int T;
cin>>T;
while (T--)
{
ll n,k;
scanf("%lld %lld",&n,&k);
if (k>) k=;
while(k--)
{
if (n==||n==) break;
if (n%==) n/=;
else n=n/+;
}
printf("%lld\n",n);
}
return ;
}

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4125

先写到这里吧。剩下的晚点补完!

5.17 补充 翻看ppt时,发现传递闭包那个题还可以bitset优化 改成    a[i][j]|=(a[i][k]&&a[k][j]);

优化后50ms-》30ms

第十届山东省acm省赛补题(1)的更多相关文章

  1. 第十届山东省acm省赛补题(2)

    http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4124 L Median Time Limit: 1 Second      ...

  2. 第七届山东省ACM省赛

    激动人心的省赛终于结束了…平静下来再回头看真的感觉一波三折…先是赛前毫无预兆的查出突发性耳聋…伴随而来的就是左耳听力下降.轻微耳鸣.极个别情况下的头晕…不过这都还好,毕竟药物可以恢复…热身赛只过了一道 ...

  3. 2018年第九届山东省ACM省赛总结

    去年打完区域赛之后,面对着两个队友都去找实习的情况,我自己对今年省赛还是有点慌的.不只一次的像我的队友说明自己很慌,但是老曹跟会长都说:“没事,慌啥!”前几场训练赛因为老曹跟秋洁有面试有时候只能一个人 ...

  4. 哈尔滨工程大学ACM预热赛 补题

    链接:https://ac.nowcoder.com/acm/contest/554/A来源:牛客网 小虎刚刚上了幼儿园,老师让他做一个家庭作业:首先画3个格子,第二行有2个格子,第三行有1个格子. ...

  5. 2018山东省ACM省赛G题-Game

    Alice and Bob are playing a stone game. There are n piles of stones. In each turn, a player can remo ...

  6. 第十届蓝桥杯省赛JavaB组个人题解

    前言 以下的第十届蓝桥杯Java B组省赛的题目题解只是我个人的题解,提供一些解题思路,仅作参考,如有错误,望大家指出,不甚感激,我会及时更改. 试题 A: 组队 ----- 答案:490 [问题描述 ...

  7. 2019山东省ACM省赛菜鸡的赛后总结

    省赛总结 2019-05-13 21:27:40 虽然第一次就死的这么难看,但是的确发现了很多问题,我想这是未来我和我的队友要解决的,而不是去难过,去感慨自己是有多菜.在大一训练结束马上参加暑假集训的 ...

  8. 2017河工大校赛补题CGH and 赛后小结

    网页设计课上实在无聊,便开始补题,发现比赛时候僵着的东西突然相通了不少 首先,"追妹"这题,两个队友讨论半天,分好多种情况最后放弃(可是我连题目都没看啊),今天看了之后试试是不是直 ...

  9. “浪潮杯”第九届山东省ACM大学生程序设计竞赛重现赛 C-Cities

    题目描述:There are n cities in Byteland, and the ith city has a value ai. The cost of building a bidirec ...

随机推荐

  1. 最简洁地说明常用的git指令(1)

    前提条件,在github上面创建一个仓库,注册好git账号,下面开始 首先在项目文件夹下面,如果有安装git则邮件gitbash进入控制台.另一种方式是使用IDEA打开你要上传的工程,在里面的命令行下 ...

  2. ul列表li元素横排显示的IE兼容性问题

    目标: 使ul列表横排显示 现象: 谷歌OK,火狐竖排,IE竖排. 原因: ul原css代码: 首先,去除点号,list-style:none;为了使其横排,使用了display:contents;该 ...

  3. Android仿支付宝扣款顺序,动态改变ListView各Item次序

    前言:今天遇到个需求,需要让用户动态选择语音传输方式的次序,突然想起支付宝选择扣款顺序的功能,恰好能满足需要,就花了点时间写了个demo,在此权当学习记录 先上效果图 支付宝的效果 demo的效果 思 ...

  4. @Autowired与@Resource的区别(转载)

    原文地址:http://bhdweb.iteye.com/blog/1663907 1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上.  ...

  5. C++与C#对于引用外部文件成员使用的区别

    对于C++控制台项目,如果有两个.cpp的文件都想引用同一个类的成员时,我们可以定义一个类,然后在类的头文件中添加extern来修饰. Box.cpp如下: #include "Box.h& ...

  6. JavaScript精进篇

    JavaScript是所有前端框架中最基础的框架,在工作了两年以后又重新回到了这里.过去两年里用的最多的前端框架是jquery,因为它简单易上手,而jquery就是封装了JavaScript.重新系统 ...

  7. SpringBoot 1.X版本设置Https访问以及跨域https访问的问题

    最近在做的一个项目中出现了Https域向非Https域发送ajax请求无法通过的问题 Mixed Content: The page at was loaded over HTTPS, but req ...

  8. python-套接字编程之udp

    使用udp协议 服务端: #!/usr/bin/python3 # coding:utf-8 # Auther:AlphaPanda # Description:UDP服务端 # Version:1 ...

  9. layui.form is not a function

    改变: var form = layui.form; 如果你是从1.x升级2.x造成的,那只需要在定义的时候吧后面的()去掉就可以了.请关注更新日志:1.x 升 2.0 特别注意事项layDate日期 ...

  10. JPA学习(六、JPA_JPQL)

    框架学习之JPA(六) JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中 ...