博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #348(VK Cup 2016 - Round 2)
阅读量:6006 次
发布时间:2019-06-20

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

 

 (div2)

1 2 1 2这样加就可以了

#include 
typedef long long ll;const int N = 1e5 + 5;int main() { int n; scanf ("%d", &n); int ans = n / 3 * 2; if (n % 3) { ans++; } printf ("%d\n", ans); return 0;}

 (div2)

水题,暴力模拟一下

#include 
typedef long long ll;const int N = 1e5 + 5;char str[N];int a[N];int main() { int n; scanf ("%d", &n); scanf ("%s", str); for (int i=0; i
= n) { break; } if (a[now] == -1) { puts ("INFINITE"); return 0; } if (str[now] == '>') { int pre = now; now = now + a[now]; a[pre] = -1; } else { int pre = now; now = now - a[now]; a[pre] = -1; } } puts ("FINITE"); return 0;}

构造  (div2)

倒过来做,循环也反着来

#include 
typedef long long ll;const int N = 1e2 + 5;const int Q = 1e4 + 5;int a[N][N];int t[Q], row[Q], col[Q], x[Q];int main() { int n, m, q; scanf ("%d%d%d", &n, &m, &q); for (int i=1; i<=q; ++i) { scanf ("%d", t+i); if (t[i] == 1) { scanf ("%d", row+i); } if (t[i] == 2) { scanf ("%d", col+i); } if (t[i] == 3) { scanf ("%d%d%d", row+i, col+i, x+i); } //printf ("%d %d %d %d\n", t[i], row[i], col[i], x[i]); } for (int i=q; i>=1; --i) { if (t[i] == 1) { int last = a[row[i]][m]; for (int j=m; j>=2; --j) { a[row[i]][j] = a[row[i]][j-1]; } a[row[i]][1] = last; } if (t[i] == 2) { int last = a[n][col[i]]; for (int j=n; j>=2; --j) { a[j][col[i]] = a[j-1][col[i]]; } a[1][col[i]] = last; } if (t[i] == 3) { a[row[i]][col[i]] = x[i]; } } for (int i=1; i<=n; ++i) { for (int j=1; j<=m; ++j) { printf ("%d%c", a[i][j], j == m ? '\n' : ' '); } } return 0;}

数学  (div2)

题意:男生与女生围成圈跳舞,女生的位置不变,男生可以移动x个女生或者相邻的男生奇偶互换,问最后男生的排列

分析:问题的关键点在于奇数男生的圈顺序不变,偶数也不变,只是起点的位置改变,所以只要对两个起点操作就行了。

#include 
typedef long long ll;const int N = 1e6 + 5;int ans[N];int main() { int p0 = 0, p1 = 1; int n, q; scanf ("%d%d", &n, &q); for (int i=0; i

数学+前(后)缀  (div1)

题意:已知p(max(a,b)=k) 和 p(min(a,b)=k)的概率,求p(a=k) 和 p(b=k)

分析:

P(a = k) = P(a <= k) — P(a <= k-1) P(max(a, b) <= k) = P(a <= k) * P(b <= k)

P(min(a, b) >= k) = P(a >= k) * P(b >= k) = (1 — P(a <= k-1)) *(1 — P(b <= k-1))

 

解方程的,从而求得

#include 
const int N = 1e5 + 5;double p[N], q[N], a[N], b[N];int main() { int n; scanf ("%d", &n); for (int i=1; i<=n; ++i) { scanf ("%lf", p+i); p[i] += p[i-1]; } for (int i=1; i<=n; ++i) { scanf ("%lf", q+i); } for (int i=n; i>=1; --i) { q[i] += q[i+1]; } for (int i=1; i<=n; ++i) { double A = p[i], B = q[i+1]; double C = B - A - 1; double delta = sqrt (std::max (C*C - 4 * A, 0.0)); a[i] = (-C+delta) / 2; b[i] = (-C-delta) / 2; } for (int i=1; i<=n; ++i) { printf ("%.10f%c", a[i] - a[i-1], i == n ? '\n' : ' '); } for (int i=1; i<=n; ++i) { printf ("%.10f%c", b[i] - b[i-1], i == n ? '\n' : ' '); } return 0;}

  

转载于:https://www.cnblogs.com/Running-Time/p/5434631.html

你可能感兴趣的文章
VMware Horizon View 7.5 虚拟桌面实施咨询与购买--软件硬件解决方案
查看>>
2018新版驾照驾照psd模板下载
查看>>
【矢量图控件教程】矢量图控件VectorDraw 常见问题整理大全(一)
查看>>
文件系统、服务、防火墙、SELINUX——安全四大金刚
查看>>
RabbitMQ如何保证队列里的消息99.99%被消费?
查看>>
Lync Server 2010的部署系列_第五章 准备 Active Directory 域服务
查看>>
java基本数据类型及运算符小结
查看>>
第一周博客作业
查看>>
Python strip lstrip rstrip使用方法
查看>>
Linux开发工具_1_gcc入门(上)
查看>>
在这里安家了
查看>>
ERP项目更应授人以渔
查看>>
我的友情链接
查看>>
thinkpython2
查看>>
JDK、JRE和JVM的关系
查看>>
String、StringBuffer和StringBuilder的区别
查看>>
【原创】ObjectARX中的代理对象
查看>>
.net中验证码的几种常用方法
查看>>
解决OracleDBConsoleorcl不能启动
查看>>
.net DLL程序集中打包另一个DLL
查看>>