A.On The Way to Lucky Plaza  (数论)
题意:m个店 每个店可以买一个小球的概率为p
       求恰好在第m个店买到k个小球的概率

题解:求在前m-1个店买k-1个球再*p就好了 最开始没太懂输出什么意思
       其实就是p*q的逆元的意思 因为概率是三位小数于是对他*1000*1000的逆元处理

   还要加个eps 因为0.005浮点数由于不确定性可能存的0.0050001或者0.00499999

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = ; ll ny[]; ll pow_mod(ll x, ll y)
{
ll res = ;
while(y)
{
if(y & ) res = res * x % mod;
x = x * x % mod;
y >>= ;
}
return res % mod;
} int main()
{
ll n, m, k;
scanf("%lld%lld%lld", &m, &n, &k);
for(ll i = ; i <= ; i++) ny[i] = pow_mod(i, mod - 2LL); double pp;
scanf("%lf", &pp);
ll p = * pp + 1e-; ll ans = ;
for(int i = ; i <= k - ; i++) ans = ans * ny[i] % mod;
for(ll i = ; i <= k - ; i++) ans = ans * (n - i) % mod;
for(int i = ; i <= k; i++) ans = ans * p % mod;
for(int i = ; i <= n - k; i++) ans = ans * ( - p) % mod;
for(int i = ; i <= n; i++) ans = ans * ny[] % mod;
printf("%lld\n", ans);
return ;
}

B.So You Think You Can Count?(水DP)

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = ; char s[];
int vis[];
ll dp[]; int main()
{
int n;
scanf("%d", &n);
scanf("%s", s + );
dp[] = ; for(int i = ; i <= n; i++)
{
memset(vis, , sizeof(vis)); for(int j = i; j >= ; j--)
{
if(vis[s[j] - '']) break;
else
{
vis[s[j] - ''] = ;
dp[i] = (dp[i] + dp[j - ]) % mod;
}
}
}
printf("%lld\n", dp[n]);
return ;
}

C.MRT Map (最短路) 不会写最短路 学姐写的

D.Husam's Bug (水题)

E.Abdalrahman Ali Bugs (水题)

F.Certifications (水题)

G.In the Chairman's office (水题)

H.Give Me This Pizza

题意:给一个数组 求每个数右边第一个比他大的数是谁

题解:ai才不到50 从后往前暴力即可 存每个数最后出现的位置

#include <bits/stdc++.h>
using namespace std; int vis[];
int q[];
int ans[]; int main()
{
int n;
scanf("%d", &n);
for(int i = ; i <= n; i++) scanf("%d", &q[i]); for(int i = ; i <= ; i++) vis[i] = ;
for(int i = ; i <= n; i++) ans[i] = ; for(int i = n; i >= ; i--)
{
vis[q[i]] = i;
int f = -;
for(int j = q[i] + ; j <= ; j++)
{
if(vis[j] < ans[i])
{
ans[i] = vis[j];
f = j;
}
}
ans[i] = f;
}
for(int i = ; i <= n; i++)
{
if(i != n) printf("%d ", ans[i]);
else printf("%d\n", ans[i]);
}
return ;
}

I.Husam and the Broken Present 1 (水题)

J.Husam and the Broken Present 2 (状压DP)  题解戳

K.Counting Time (模拟)

题意:给一个九宫格的初始状态 填完这个九宫格使得每个数字x能跳到x+1的方案有多少种

   能跳到的区域为八连通 且x只能跳到x+1

题解:模拟

#include <bits/stdc++.h>
using namespace std; int nx[];
int ny[];
int vis[];
char tu[][];
int dx[];
int dy[];
int q[] = {, , , , , , , , , }; int ans;
bool check()
{
dx[q[]] = dx[q[]] = dx[q[]] = ;
dx[q[]] = dx[q[]] = dx[q[]] = ;
dx[q[]] = dx[q[]] = dx[q[]] = ;
dy[q[]] = dy[q[]] = dy[q[]] = ;
dy[q[]] = dy[q[]] = dy[q[]] = ;
dy[q[]] = dy[q[]] = dy[q[]] = ; for(int i = ; i <= ; i++)
if(vis[i])
{
if(dx[i] == nx[i] && dy[i] == ny[i]) continue;
else return false;
} for(int i = ; i <= ; i++)
{
if(abs(dx[i] - dx[i - ]) <= && abs(dy[i] - dy[i - ]) <= ) continue;
else return false;
}
return true;
} int main()
{
ans = ;
for(int i = ; i <= ; i++) scanf("%s", tu[i] + );
for(int i = ; i <= ; i++)
for(int j = ; j <= ; j++)
{
if(tu[i][j]!= '')
{
int c = tu[i][j] - '';
vis[c] = ;
nx[c] = i;
ny[c] = j;
}
} ans += check();
while(next_permutation(q + , q + )) ans += check();
printf("%d\n", ans);
return ;
}

gym101343 2017 JUST Programming Contest 2.0的更多相关文章

  1. 2017 JUST Programming Contest 2.0 题解

    [题目链接] A - On The Way to Lucky Plaza 首先,$n>m$或$k>m$或$k>n$就无解. 设$p = \frac{A}{B}$,$ans = C_{ ...

  2. gym101532 2017 JUST Programming Contest 4.0

    台州学院ICPC赛前训练5 人生第一次ak,而且ak得还蛮快的,感谢队友带我飞 A 直接用claris的模板啊,他模板确实比较强大,其实就是因为更新的很快 #include<bits/stdc+ ...

  3. 2017 JUST Programming Contest 3.0 B. Linear Algebra Test

    B. Linear Algebra Test time limit per test 3.0 s memory limit per test 256 MB input standard input o ...

  4. 2017 JUST Programming Contest 3.0 I. Move Between Numbers

    I. Move Between Numbers time limit per test 2.0 s memory limit per test 256 MB input standard input ...

  5. 2017 JUST Programming Contest 3.0 D. Dice Game

    D. Dice Game time limit per test 1.0 s memory limit per test 256 MB input standard input output stan ...

  6. 2017 JUST Programming Contest 3.0 H. Eyad and Math

    H. Eyad and Math time limit per test 2.0 s memory limit per test 256 MB input standard input output ...

  7. 2017 JUST Programming Contest 3.0 K. Malek and Summer Semester

    K. Malek and Summer Semester time limit per test 1.0 s memory limit per test 256 MB input standard i ...

  8. 2017 JUST Programming Contest 3.0 E. The Architect Omar

    E. The Architect Omar time limit per test 1.0 s memory limit per test 256 MB input standard input ou ...

  9. 2017 JUST Programming Contest 2.0

    B. So You Think You Can Count? 设dp[i]表示以i为结尾的方案数,每个位置最多往前扫10位 #include<bits/stdc++.h> using na ...

随机推荐

  1. TMS320F28335项目开发记录6_28335之cmd文件具体解释

    1.CMD文件的作用 CMD文件的作用就像仓库的货物摆放记录一样,为程序代码和数据分配指定的空间. 2.C语言生成的段 C语言生成的段大致分为两大类:初始化和未初始化,已初始化的段含有真正的指令和数据 ...

  2. WEB端应该使用DataTable/DataSet吗?

    有一次和同事讨论起具体的技术细节,同事说不要用什么实体类,从数据库访问到的数据,直接用DataTable.DataSet 就好.理由是,从获取到的数据集转换成实体类,有一定的性能损耗. 呵呵,性能.我 ...

  3. Codeforces Beta Round #96 (Div. 1) C. Logo Turtle DP

    C. Logo Turtle   A lot of people associate Logo programming language with turtle graphics. In this c ...

  4. 危险的kill

    . ps -aux | grep -E "chk.*url.*py" | cut -c 10-15 | xargs kill -9 ps -x | grep -E "ch ...

  5. JavaScript总结01

    1 JavaScript 与 Java 的关系? 雷锋和雷峰塔的关系JavaScript和Java都与sun公司有合作,是借势Java 2 JavaScript 的特点是什么? 脚本语言(一种轻量级的 ...

  6. Ural1099 Work Scheduling 一般图的最大匹配

    Ural1099 给定无向图, 求最大匹配. 在寻找增广路的过程中,可能出现一个奇环,这时候把奇环收缩,成为一朵“花”,并在新图上继续增广. 为了记录匹配关系,需要在花中寻找路径,每一条增广路径都可以 ...

  7. Ural 1517. Freedom of Choice 后缀数组

    Ural1517 所谓后缀数组, 实际上准确的说,应该是排序后缀数组. 一个长度为N的字符串,显然有N个后缀,将他们放入一个数组中并按字典序排序就是后缀数组的任务. 这个数组有很好的性质,使得我们运行 ...

  8. Enum类的非一般用法汇总(工作中遇到时持续更新)

    1.  每个枚举实例定义一套自己的方法示例: 1 @AllArgsConstructor 2 public enum BroadcastTypeEnum { 3 ALL(0, "全站&quo ...

  9. javascript DOM基本操作

    javascript DOM基本操作 1.DOM(Document Object Model 文档对象模型) 2.节点: 文档节点:document 元素节点:html.head.body.title ...

  10. MyBatis高级查询 存储过程

    1.第一个存储过程  根据用户id查询用户其他信息 #第一个存储过程 #根据用户id查询用户其他信息 DROP PROCEDURE IF EXISTS `select_user_by_id`; DEL ...