牛客多校训练AFJ(签到)
题目链接https://ac.nowcoder.com/acm/contest/881/A(单调栈)
- #include<cstdio>
- #include<iostream>
- #include<cstring>
- #include<algorithm>
- #include<queue>
- #include<stack>
- #include<set>
- #include<vector>
- #include<map>
- #include<cmath>
- const int maxn=1e5+;
- typedef long long ll;
- using namespace std;
- int L1[*maxn],L2[*maxn];
- int a[*maxn],b[*maxn];
- int main()
- {
- int n;
- while(~scanf("%d",&n))
- {
- for(int t=;t<=n;t++)
- {
- scanf("%d",&a[t]);
- }
- for(int t=;t<=n;t++)
- {
- scanf("%d",&b[t]);
- }
- stack<int>s1,s2;
- for(int t=;t<=n;t++)
- {
- if(s1.empty())
- {
- L1[t]=;
- s1.push(t);
- continue;
- }
- else
- {
- while(!s1.empty()&&a[s1.top()]>a[t])
- {
- s1.pop();
- }
- if(s1.empty())
- {
- L1[t]=;
- s1.push(t);
- continue;
- }
- else
- {
- L1[t]=s1.top();
- s1.push(t);
- continue;
- }
- }
- }
- for(int t=;t<=n;t++)
- {
- if(s2.empty())
- {
- L2[t]=;
- s2.push(t);
- continue;
- }
- else
- {
- while(!s2.empty()&&b[s2.top()]>b[t])
- {
- s2.pop();
- }
- if(s2.empty())
- {
- L2[t]=;
- s2.push(t);
- continue;
- }
- else
- {
- L2[t]=s2.top();
- s2.push(t);
- continue;
- }
- }
- }
- int k=n+;
- for(int t=;t<=n;t++)
- {
- //cout<<L1[k]<<" "<<L2[k]<<endl;
- if(L1[t]!=L2[t]){
- k=t;
- break;
- }
- }
- printf("%d\n",k-);
- }
- return ;
- }
题目链接:https://ac.nowcoder.com/acm/contest/881/F(思维)
三角形面积的22倍
- #include<cstdio>
- #include<iostream>
- #include<cstring>
- #include<algorithm>
- #include<queue>
- #include<stack>
- #include<set>
- #include<vector>
- #include<map>
- #include<cmath>
- const int maxn=1e5+;
- typedef long long ll;
- using namespace std;
- int main()
- {
- long double x0,y0,x1,y1,x2,y2;
- long double a,b,c,p,S;
- long double ans;
- while(cin>>x0>>y0>>x1>>y1>>x2>>y2)
- {
- a=sqrtl((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1));
- b=sqrtl((x0-x2)*(x0-x2)+(y0-y2)*(y0-y2));
- c=sqrtl((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
- //cout<<a<<" "<<b<<" "<<c<<endl;
- p=(a+b+c)/;
- S=sqrtl(p*(p-a)*(p-b)*(p-c));
- S=S*;
- ans=S;
- printf("%.0Lf\n",ans);
- }
- return ;
- }
海伦公式版没过 不知道原因
- #include<cstdio>
- #include<iostream>
- #include<cstring>
- #include<algorithm>
- #include<queue>
- #include<stack>
- #include<set>
- #include<vector>
- #include<map>
- #include<cmath>
- const int maxn=1e5+;
- typedef long long ll;
- using namespace std;
- int main()
- {
- long double x0,y0,x1,y1,x2,y2;
- long double a,b,c,p,S;
- long double ans;
- while(cin>>x0>>y0>>x1>>y1>>x2>>y2)
- {
- a=sqrtl((x0-x1)*(x0-x1)+(y0-y1)*(y0-y1));
- b=sqrtl((x0-x2)*(x0-x2)+(y0-y2)*(y0-y2));
- c=sqrtl((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
- //cout<<a<<" "<<b<<" "<<c<<endl;
- p=(a+b+c)/;
- S=sqrtl(p*(p-a)*(p-b)*(p-c));
- S=S*;
- ans=S;
- printf("%.0Lf\n",ans);
- }
- return ;
- }
题目链接:https://ac.nowcoder.com/acm/contest/881/J(大数)
- #include <stdio.h>
- #include <stdlib.h>
- #include <iostream>
- #include <string>
- #include <cstring>
- #include <cstdio>
- using namespace std;
- const int maxn = ;
- struct bign{
- int d[maxn], len;
- void clean() { while(len > && !d[len-]) len--; }
- bign() { memset(d, , sizeof(d)); len = ; }
- bign(int num) { *this = num; }
- bign(char* num) { *this = num; }
- bign operator = (const char* num){
- memset(d, , sizeof(d)); len = strlen(num);
- for(int i = ; i < len; i++) d[i] = num[len--i] - '';
- clean();
- return *this;
- }
- bign operator = (int num){
- char s[]; sprintf(s, "%d", num);
- *this = s;
- return *this;
- }
- bign operator + (const bign& b){
- bign c = *this; int i;
- for (i = ; i < b.len; i++){
- c.d[i] += b.d[i];
- if (c.d[i] > ) c.d[i]%=, c.d[i+]++;
- }
- while (c.d[i] > ) c.d[i++]%=, c.d[i]++;
- c.len = max(len, b.len);
- if (c.d[i] && c.len <= i) c.len = i+;
- return c;
- }
- bign operator - (const bign& b){
- bign c = *this; int i;
- for (i = ; i < b.len; i++){
- c.d[i] -= b.d[i];
- if (c.d[i] < ) c.d[i]+=, c.d[i+]--;
- }
- while (c.d[i] < ) c.d[i++]+=, c.d[i]--;
- c.clean();
- return c;
- }
- bign operator * (const bign& b)const{
- int i, j; bign c; c.len = len + b.len;
- for(j = ; j < b.len; j++) for(i = ; i < len; i++)
- c.d[i+j] += d[i] * b.d[j];
- for(i = ; i < c.len-; i++)
- c.d[i+] += c.d[i]/, c.d[i] %= ;
- c.clean();
- return c;
- }
- bign operator / (const bign& b){
- int i, j;
- bign c = *this, a = ;
- for (i = len - ; i >= ; i--)
- {
- a = a* + d[i];
- for (j = ; j < ; j++) if (a < b*(j+)) break;
- c.d[i] = j;
- a = a - b*j;
- }
- c.clean();
- return c;
- }
- bign operator % (const bign& b){
- int i, j;
- bign a = ;
- for (i = len - ; i >= ; i--)
- {
- a = a* + d[i];
- for (j = ; j < ; j++) if (a < b*(j+)) break;
- a = a - b*j;
- }
- return a;
- }
- bign operator += (const bign& b){
- *this = *this + b;
- return *this;
- }
- bool operator <(const bign& b) const{
- if(len != b.len) return len < b.len;
- for(int i = len-; i >= ; i--)
- if(d[i] != b.d[i]) return d[i] < b.d[i];
- return false;
- }
- bool operator >(const bign& b) const{return b < *this;}
- bool operator<=(const bign& b) const{return !(b < *this);}
- bool operator>=(const bign& b) const{return !(*this < b);}
- bool operator!=(const bign& b) const{return b < *this || *this < b;}
- bool operator==(const bign& b) const{return !(b < *this) && !(b > *this);}
- string str() const{
- char s[maxn]={};
- for(int i = ; i < len; i++) s[len--i] = d[i]+'';
- return s;
- }
- };
- istream& operator >> (istream& in, bign& x)
- {
- string s;
- in >> s;
- x = s.c_str();
- return in;
- }
- ostream& operator << (ostream& out, const bign& x)
- {
- out << x.str();
- return out;
- }
- int main()
- {
- bign x,y,a,b;
- while(cin>>x>>a>>y>>b)
- {
- if(x*b==y*a)
- {
- puts("=");
- }
- else if(x*b<y*a)
- {
- puts("<");
- }
- else
- {
- puts(">");
- }
- }
- }
牛客多校训练AFJ(签到)的更多相关文章
- 牛客多校训练第八场G.Gemstones(栈模拟)
题目传送门 题意: 输入一段字符串,字符串中连续的三个相同的字符可以消去,消去后剩下的左右两段字符串拼接,求最多可消去次数. 输入:ATCCCTTG 输出:2 ATCCCTTG(消去CCC)——& ...
- 牛客多校训练第八场C.CDMA(思维+构造)
题目传送门 题意: 输入整数m( m∈2k ∣ k=1,2,⋯,10),构造一个由1和-1组成的m×m矩阵,要求对于任意两个不同的行的内积为0. 题解: Code: #include<bits/ ...
- 2019牛客多校训练第四场K.number(思维)
题目传送门 题意: 输入一个只包含数字的字符串,求出是300的倍数的子串的个数(不同位置的0.00.000等都算,并考虑前导零的情况). sample input: 600 1230003210132 ...
- 2019牛客多校训练第三场H.Magic Line(思维)
题目传送门 大致题意: 输入测试用例个数T,输入点的个数n(n为偶数),再分别输入n个不同的点的坐标,要求输出四个整数x1,y1,x2,y2,表示有一条经过点(x1,y1),(x2,y2)的直线将该二 ...
- 2019牛客多校训练第三场B.Crazy Binary String(思维+前缀和)
题目传送门 大致题意: 输入整数n(1<=n<=100000),再输入由n个0或1组成的字符串,求该字符串中满足1和0个数相等的最长子串.子序列. sample input: 801001 ...
- 18牛客多校训练第二场 J farm
题意:一个n×m的农田, 每个小格子都有一种作物, 现在喷t次农药,每次农药覆盖一个矩形, 该矩形里面与农药类型不同的植物都会死掉, 求最后植物的死亡数是多少. 题解:二维树状数组. 每次喷农药的时候 ...
- 2019暑假牛客多校训练-第八场-C-CDMA(递归、水题)
观察前3组可以推出递归规律,生成下一个类型时,每行copy自身与自身相反. 题目描述 Gromah and LZR have entered the third level. There is a b ...
- 2019牛客多校第一场 I Points Division(动态规划+线段树)
2019牛客多校第一场 I Points Division(动态规划+线段树) 传送门:https://ac.nowcoder.com/acm/contest/881/I 题意: 给你n个点,每个点有 ...
- 牛客多校第一场 B Inergratiion
牛客多校第一场 B Inergratiion 传送门:https://ac.nowcoder.com/acm/contest/881/B 题意: 给你一个 [求值为多少 题解: 根据线代的知识 我们可 ...
随机推荐
- 打印java系统的信息
System.getProperties() 确定当前系统属性 Properties.list() 将获取到的信息打印到流中 public class Userone { public static ...
- C语言输出颜色
命令后界面输出颜色 嵌入式终端界面输出日志时,为了区分输出的有用信息.错误信息,可以给不同级别的输出加上不同的颜色,以方便查看. 下面是颜色的定义: //颜色宏定义 #define NONE &quo ...
- CSS漂亮盒子(上)
HTML文档中的所有元素都是由矩形盒子构成的--不管是包含页面结构的容器元素,还是段落中的每行文本,归根结底都是盒子. 1.背景颜色 设置页面背景颜色. body { background-color ...
- Bytom Dapp 开发笔记(二):开发流程
简介 这章的内容详细分析一下涉及智能合约Dapp的整个开发流程,注意是涉及只能合约,如果你只要一些基本转BTM功能没有太大意义,本内容补充一下官方提供的 比原链DAPP开发流程,详细实践过好踩到的一些 ...
- java Hibernate 用法
Hibernate 用法总结: import java.io.Serializable; import java.sql.SQLException; import java.util.Collecti ...
- 2020-05-24:ZK分布式锁有几种实现方式?各自的优缺点是什么?
福哥答案2020-05-24: Zk分布式锁有两种实现方式一种比较简单,应对并发量不是很大的情况.获得锁:创建一个临时节点,比如/lock,如果成功获得锁,如果失败没获得锁,返回false释放锁:删除 ...
- C#LeetCode刷题之#203-删除链表中的节点(Remove Linked List Elements)
问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3826 访问. 删除链表中等于给定值 val 的所有节点. 输入: ...
- 代码优化与sql优化---未完待续
万丈高楼平地起,还是得打一个好地基呀 减少对变量对重复计算 //一般这么写 for (int i = ; i < list.size(); i++) {...} //建议修改为: for (in ...
- Enumerable 下又有新的扩展方法啦,快来一起一睹为快吧
一:背景 1. 讲故事 前段时间将公司的一个项目从 4.5 升级到了 framework 4.8 ,编码的时候发现 Enumerable 中多了三个扩展方法: Append, Prepend, ToH ...
- Clion使用gtk3
在已经安装了gtk3的情况下,使用Clion还是无法正常给gtk3. 此时,我们需要更改CMakeList. 以下代码中需要添加的行都以#开头,此仅为了标识需要添加的行,而无需在实际代码中添加# cm ...