EOJ Monthly 2018.1
985月赛,当时鸽了,现在想补一补
Time limit per test: 1.0 seconds
Memory limit: 256 megabytes
现在有一种石头剪刀布锦标赛。采取 100 局胜负制。对战 100 局,扣掉平局,谁赢得多谁就取得最终的胜利。
zzz 同学天天玩石头剪刀布,从而总结出了一套提高石头剪刀布胜率的方法。这套方法重点在于利用人的心理。石头剪刀布这三者,你可能觉得你是随机选择的,但其实不然。你还是会产生一定的偏向性。在若干局游戏后,有的人出石头的频数会高,有的人出布的频数会高,还有的人出剪刀的频数会高。
这点差异其实微乎其微,但却能成为决定胜负的关键。zzz 同学也就是靠着这微乎其微的差异,拿到了石头剪刀布世界冠军,攀上人生巅峰。
作为 zzz 同学的室友,你对 zzz 同学出石头剪刀布的套路掌握得一清二楚。具体如下:
- 他会根据对方之前已经出过的石头次数、剪刀次数、布次数,来决定最不利于对方的。比如对方剪刀最多,他一定会出石头;对方布最多,他一定会出剪刀;对方石头最多,他一定会出布。
- 在比赛开始前,他会给石头剪刀布各分配一个优先级,分别为 p,q,r。如果存在两个一样多,或三个一样多,或者一个都没出过(刚开局),那么他会优先选择优先级高的。比如说对方出过的剪刀和布一样多,石头就比较少,那么他接下来的选择一定在石头和剪刀之间。如果石头的优先级为 3,剪刀的优先级为 2,那么他就会优先选择石头。
zzz 同学是很死板的,他肯定不会违背这套策略。也就是说,一旦你搞到了他即将参加的比赛的优先级 p,q,r,你基本已经赢了,甚至连这 100 局每局是输是赢都想好了。
于是你膨胀了。你要去挑战世界冠军 zzz。
Input
有且仅有一行,三个整数 p,q,r ({p,q,r}={1,2,3}),用空格隔开。
不会有两个相同的测试点。
Output
输出 100 行,每行一个整数,依次为这 100 局你的选择。
石头输出 1,剪刀输出 2,布输出 3。
Note
此题无样例。
100局,扣去平局,你只要赢他的比输给他的多就行了
我本来觉得既然已经分配了,我只要输出一种可以让赢的比输的多,然后就行了,每次克制,我还列了六种情况,其实只分三种喽,那次优先级最高知道就好了
你还是会产生一定的偏向性。在若干局游戏后,有的人出石头的频数会高,有的人出布的频数会高,还有的人出剪刀的频数会高。对方也会根据我们出的出啊,所以要那样想的话只能一次石头剪刀布全出一遍,这样只要确保三轮的一次对战我能保证赢就好了,即使都是平局,最后一次赢就好了,所以每次出一遍啊
#include<bits/stdc++.h>
using namespace std;
int main()
{
int p,q,r;
cin>>p>>q>>r;
int a[]={,,,};
if(p==)a[]=,a[]=,a[]=;
else if(r==)a[]=,a[]=,a[]=;
for(int i=;i<;i++)
cout<<a[]<<"\n"<<a[]<<"\n"<<a[]<<"\n";
cout<<a[]<<"\n";
return ;
}
Time limit per test: 1.0 seconds
Memory limit: 256 megabytes
字符串的大,不在于长,而在于妙。
现在给出由数字组成的字符串 s,求出字符串的所有的非空连续子串中,最妙的那个子串。
一个字符串的妙是这样定义的:将这个子串所表示的整数(有可能带前导 0),除以 10L(其中 L 为字符串的长度)。比如说 123456789 的子串 456 的妙为 456103=0.456。
Input
给出一行一个字符串 s (1≤|s|≤20 000)。
Output
输出最妙的那个子串。如果有多个,输出最短的那个。如果最短的最妙的子串也有多个,输出字典序最小的那个。
Examples
123456789
9
321
321
写丑了写丑了,就是一个贪心取字符串而已,找最大的数,输出不包括前导0
#include<bits/stdc++.h>
using namespace std;
string s,t;
void la()
{
int f=;
for(int i=; i>&&f; i--)
for(int j=; s[j]; j++)
if(s[j]-''==i&&(f||!f&&s.substr(j)>t))
t=s.substr(j),f=;
}
int main()
{
cin>>s;
int f=;
for(int i=s.length()-; ~i; i--)
{
if(s[i]!='')
{
s=s.substr(,i+),f=;
break;
}
}
if(f)
{
cout<<;
return ;
}
la();
cout<<t;
}
Time limit per test: 2.5 seconds
Memory limit: 256 megabytes
xxx 写了一份用 DFS 求有向无环图中顶点 1 到 n 最短路的代码,出乎意料的是这份代码竟然通过了所有测试点。于是你暗地里把出题人骂了一通,然后决定造个数据把这个假算法卡掉。
核心代码如下:
global variable: answer_now function dfs(u, distance_now)
if distance_now >= answer_now then
return
if u == n then
answer_now = distance_now
return
for each u->v in edges
dfs(v, dist + 1) function find_shortest_path()
answer_now = INFINITY
dfs(1, 0)
return answer_now
Output
第一行两个数 n,m,分别表示图中点的个数和边的条数。(1≤n≤50,1≤m≤100)
之后 m 行,每行两个数 u,v,表示顶点 u→v 有一条有向边。 (1≤u,v≤n)
要求:
- 存在 1 到 n 的路径。
- 不能有重边。
- 不能有环。
- xxx 的算法会给出错误解或者运行超时(时限是 2 秒)。
Examples
Sample
7 8
6 7
1 2
1 3
2 4
2 5
3 5
4 6
5 6
Note
样例给出了一种可能的输出(不是正确的输出)。
我本来还在想这个方法会不会就是错的,因为会爆栈,但是分析它要看他是否超时
超时就是访问这个节点之后又有了很多节点可以访问,但是有个限制条件,先找到路之后,其他的比他远就不再找了,这样他算法还是能用的
所以你要访问这个点他的dist还要满足继续往下深搜的

所以这样构造就是错的,并不满足dist
void dfs(int u,int no)
{
//f++;
if(no>=ans)return;
if(u==)
{
ans=no;
return;
}
for(auto X:G[u])dfs(X,no+);
}
所以就应该保证最短路的数量足够多,我的能找到最短路啊,所以直接构造这个点可以这个点也可以下个点
#include <bits/stdc++.h>
using namespace std;
int main()
{
int i;
printf("%d %d\n",,);
for(i=; i<=; i++)
printf("%d %d\n%d %d\n",i,i+,i,i+);
for(;i<;i++)
printf("%d %d\n",i,i+);
return ;
}
EOJ Monthly 2018.1的更多相关文章
- EOJ Monthly 2018.8 D. Delivery Service-树上差分(边权/边覆盖)(边权转点权)(模板题)
D. Delivery Service 单测试点时限: 2.5 秒 内存限制: 512 MB EOJ Delivery Service Company handles a massive amount ...
- EOJ Monthly 2018.7
准备继续大学acm啦 又要开始愉快的码码码啦 第一次在华东师大OJ上面做题 看来EOJ上的积分体质是假的,我怎么一把上红??? A.数三角形 神tm的防AK题放在A,出题人很不友好啊... 先写了个暴 ...
- EOJ Monthly 2018.4
A. ultmaster 的小迷妹们 Time limit per test: 2.0 seconds Memory limit: 256 megabytes ultmaster 男神和他的小迷妹们准 ...
- EOJ Monthly 2018.4 (E.小迷妹在哪儿(贪心&排序&背包)
ultmaster 男神和小迷妹们玩起了捉迷藏的游戏. 小迷妹们都希望自己被 ultmaster 男神发现,因此她们都把自己位置告诉了 ultmaster 男神,因此 ultmaster 男神知道了自 ...
- [EOJ Monthly 2018.10][C. 痛苦的 01 矩阵]
题目链接:C. 痛苦的 01 矩阵 题目大意:原题说的很清楚了,不需要简化_(:з」∠)_ 题解:设\(r_i\)为第\(i\)行中0的个数,\(c_j\)为第\(j\)列中0的个数,\(f_{i,j ...
- EOJ Monthly 2018.11 D. 猜价格
猜价格 分两种情况讨论: k≤n,先猜至多 k 次 1,由于回答 <1 肯定是假的,所以可以把剩余系下是哪次错试出来,然后用至多 n 次搞定. k>n,每个数都猜两次,如果两次结果不一样, ...
- 【EOJ Monthly 2018.7】【D数蝌蚪】
https://acm.ecnu.edu.cn/contest/92/problem/D/ D. 数蝌蚪 Time limit per test: 2.0 seconds Memory limit: ...
- EOJ Monthly 2018.7 B.锐角三角形(数学几何+思维)
描述 是否存在面积为S/2的整点锐角三角形?存在输出Yes并输出三个整点坐标,否则输出No. 注意如果存在输出的坐标必须在long long范围内. Input 第一行一个整数S(1<=S< ...
- EOJ Monthly 2018.11 猜价格 (模拟)
分三种情况: 1.k=1.此时每次都说反话,反着二分即可. 2.1<k <= n.那么在前n次问答中一定会出现一次错误,通过不断输出1找出那个错误发生的位置(若回答是>那这就是错误) ...
- EOJ Monthly 2018.2
A. 坑爹的售票机 题意 用\(1,5,10,25,50,100\)的纸币买\(n\)张单价为\(p\)的船票,且一次性最多买\(k\)张,求钱数恰好时最少需要多少张纸币. Hard: \(n,k,p ...
随机推荐
- HDU 1124 Factorial (阶乘后缀0)
题意: 给一个数n,返回其阶乘结果后缀有几个0. 思路: 首先将n个十进制数进行质因数分解,观察的得到只有2*5才会出现10.那么n!应含有min(2个数,5个数)个后缀0,明显5的个数必定比2少,所 ...
- 如何对ABAP SE80 workbench做增强
流程如下: 要获取更多Jerry的原创文章,请关注公众号"汪子熙":
- JS等号的小注释
一言以蔽之:一个等号是赋值操作,==先转换类型再比较,===先判断类型,如果不是同一类型直接为false.
- UVA225 Golygons 黄金图形(dfs+回溯)
剪枝1:在同一个维度上的点具有相同的奇偶性,如果奇数数量只有奇数个那么一定不能返回原点. 剪枝2:当前位置怎么也走不回去. 3:沿途判断障碍即可. 在oj上提交0.347s,最快的0.012s,应该有 ...
- XPath语法规则及实例
XPath语法规则及实例 XPath语法规则 一.XPath术语: 1.节点:在XPath中,有七种类型的节点:元素.属性.文本.命名空间.处理指令.注释以及文档(根)节点. XML文档是被作为节点树 ...
- linux程序安装及包管理
程序包的封装类型: RPM软件包:扩展名为“.rpm”,使用rpm命令安装. DEB软件包:扩展名为“.deb”,使用DPKG包管理器. 源代码软件安装:程序员开发完成的原始代码,一般制作成“.tar ...
- idea spring boot启动项目上面有红色叉
一打开IDEA,在启动debug项目有一个红色叉如下图 因为打开项目可以主项目的包没有加载进来,解决办法就是右击项目->maven->Reimport 就搞定了..
- CornerStone使用跳坑总结
Cornerstone是专门为Mac用户设计的Subversion(SVN)的控制,使版本控制更加透明.cornerstone根Xcode相比,能够更好的忽略文件,所以除了项目经理第一次初始化项目的时 ...
- Xcode中的Project和Target
新创建工程(如下图e.g.),APP的属性包括了 PROJECT 和 TARGETS 两块内容.且一个工程只有一个 PROJECT,但可以有一个或多个 TARGETS(从苹果的命名上也可以看出,这个 ...
- 【原】基于matlab的蓝色车牌定位与识别---绪论
本着对车牌比较感兴趣,自己在课余时间摸索关于车牌的定位与识别,现将自己所做的一些内容整理下,也方便和大家交流. 考虑到车牌的定位涉及到许多外界的因素,因此有必要对车牌照的获取条件进行一些限定: 一.大 ...