博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #159 (Div. 2)
阅读量:4691 次
发布时间:2019-06-09

本文共 3315 字,大约阅读时间需要 11 分钟。

只看了前面三题,都很水。但是做的很不好。

A.Sockets    题目确实挺晦涩的,但是勉强看着Sample就一下懂了,按照给的supply-line filter排个序,然后由大到小累积,看需要几个能满足所有Devices,如果不行就 -1 

View Code
#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;int e[55];int main(){ int n,m,k,i; cin >> n >> m >> k; for(i = 0; i < n; i++) cin >> e[i]; sort(e, e+n); int ok = 0; int ans = 0; int cur = k; if(cur >= m) ok = 1; for(i = n-1; i >= 0 && !ok; i--) { cur = cur-1 + e[i]; ans++; if(cur >= m) { ok = 1; break; } } if(ok) cout << ans << endl; else cout << "-1" << endl; return 0;}

 

B.Playing Cubes  Petya第一个方块放的颜色决定方块的排列。可以模拟放方块的过程来得到结果。答案为 max(red, blue)-1, min(red, blue)

C.View Angle   

从原点(0,0)出发的的n条射线,求最小角度包含所有射线。

可以用atan2()函数。

对于任意不同时等于0的实参数x和y,atan2(y,x)所表达的意思是坐标原点为起点,指向(x,y)的射线在坐标平面上与x轴正方向之间的角的角度度。当y>0时,射线与x轴正方向的所得的角的角度指的是x轴正方向绕逆时针方向到达射线旋转的角的角度;而当y<0时,射线与x轴正方向所得的角的角度指的是x轴正方向绕顺时针方向达到射线旋转的角的角度。

当弧度值小于0时候,加上2*M_PI,修正成从0开始。

将这些射线按照弧度值升序,然后依次枚举相邻两个射线的角度,别忘了处理首尾两个射线,最后用360.0 - 枚举出最大的相邻射线弧度,乘以180.0/M_PI,就是答案。

View Code
#define _CRT_SECURE_NO_WARNINGS#define _USE_MATH_DEFINES#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;vector
e;int main(){ int n,i; double x,y; cin >> n; for(i = 0; i < n; i++) { scanf("%lf %lf", &x,&y); double tmp = atan2(y,x); if(tmp < 0) e.push_back(2*M_PI+tmp); else e.push_back(tmp); } sort(e.begin(), e.end()); double dif = 0.0; for(i = 1; i < e.size(); i++) dif = max(dif, e[i]-e[i-1]); dif = max(dif, 2*M_PI - (e[n-1]-e[0])); printf("%.10lf\n", 360.0 - dif*180.0/M_PI); return 0;}

 

D.Sum 

自己YY了,结果过了。因为满足ai ≤ ai+1 ≤ 2ai-1 ,所以有个想法,设定一个变量mend = 0作为修正变量,从尾到头不断根据mend变量来调整取正还是取负。

但是遇到3 3 5这种,从尾到头mend最后为-1,那么就把正负号颠倒过来好了。看到Tag有DP,不知道该怎么想,求各位大牛指导。

View Code
#define _CRT_SECURE_NO_WARNINGS#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;static inline bool get(int &v){ int s = 1, c; while(!isdigit(c = getchar())&&c != '-') { if(c == EOF) break ; } if(c == EOF) return 0; if(c == '-') s = 0 , v = 0; else v = c^48; for(;isdigit(c = getchar());v = (v << 1) + (v << 3) + (c ^ 48)); v = (s ? v : -v); return 1 ;}vector
e;char ans[100005];int main(){ int n,i,tmp; get(n); for(i = 0;i < n; i++) { get(tmp); e.push_back(tmp); } int mend = 0; for(i = n-1; i >= 0; i--) { if(mend > 0) { mend -= e[i]; ans[i] = '-'; } else { mend += e[i]; ans[i] = '+'; } } if(mend < 0) { for(i = 0; i < n; i++) { if(ans[i] == '+') printf("-"); else printf("+"); } } else { for(i = 0; i < n; i++) { printf("%c", ans[i]); } } printf("\n"); return 0;}

 

E.Greedy Elevator

转载于:https://www.cnblogs.com/tiny656/archive/2013/01/09/2852458.html

你可能感兴趣的文章
dcm4chee 修改默认(0002,0013) ImplementationVersionName
查看>>
maven3在eclipse3.4.2中创建java web项目
查看>>
发布时间 sql语句
查看>>
黑马程序员 ExecuteReader执行查询
查看>>
记一些从数学和程序设计中体会到的思想
查看>>
题目1462:两船载物问题
查看>>
POJ 2378 Tree Cutting(树形DP,水)
查看>>
第二冲刺阶段个人博客5
查看>>
UVA 116 Unidirectional TSP (白书dp)
查看>>
第三方测速工具
查看>>
MySQL 网络访问连接
查看>>
在aws ec2上使用root用户登录
查看>>
数据访问 投票习题
查看>>
CIO知识储备
查看>>
cnblog!i'm coming!
查看>>
使用点符号代替溢出的文本
查看>>
Axios 中文说明
查看>>
fatal: remote origin already exists.
查看>>
gridview 自定义value值
查看>>
2018二月实现计划成果及其三月规划
查看>>