J、Fraction Comparision
链接:https://ac.nowcoder.com/acm/contest/33552/J
来源:牛客网
题目:
Bobo has two fractions a/x and b/y. He wants to compare them. Find the result.
题意:
比较a/x和b/y的大小
思路:
分子分母想成比较,注意c++会炸ull
代码:
while 1:
try:
x,a,y,b=input().split()
x = int(x)
y = int(y)
a = int(a)
b = int(b)
if x*b==y*a:
print("=")
elif x*b<y*a:
print("<")
else:
print(">")
except:
break
A、Equivalent Prefixes
链接:https://ac.nowcoder.com/acm/contest/33552/A
来源:牛客网
题意:
找一个区间[1,q]使得所有子区间的最小值下标相等,输出q的最大值。
思路:
a,b同时维护每个位置的上一个比它小的位置,如果a,b的第i个位置的上个比它小的位置不同时,答案就是i-1,不然一直往后找如果全成立就输出n。接下来就是如何维护,开两个维护小值的单调栈,如果两个栈里面的元素个数不同的话就代表当前位置的上个比它小的位置不同。
代码:
#include<bits/stdc++.h>
typedef long long ll;
typedef unsigned long long ull;
#define int ll
#define pii pair<int,int>
#define rep(i,a,b) for(int i=(a);i<=(b);++i)
#define rrep(i,a,b) for(int i=(a);i>=(b);--i)