西瓜队(划掉),Kuma Rider久违的第一场训练,四小时瞎打.jpg

A.水题,排序

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<functional>
#include<vector>
using namespace std;
typedef long long ll;
#define lowbit(i) ((i)&(-i))
const ll maxv = 1e5 + ; ll n,d[maxv], c[maxv]; void update(ll x, ll v)
{
for (ll i = x; i < maxv; i+=lowbit(i))
{
c[i] += v;
}
} ll getsum(ll x)
{
ll sum = ;
for (ll i = x; i > ; i -= lowbit(i))
{
sum += c[i];
}
return sum;
} int main()
{
scanf("%lld", &n);
for (ll i = ; i <= n; i++)
{
scanf("%lld", &d[i]);
}
sort(d+ , d+ + n);
ll ans = ;
for (ll i = ; i <= n; i++)
{
ll num = getsum(i-);
num = (i - ) - num;
//printf("%lld %lld\n", i, num);
ans += num;
update(d[i], );
}
ans *= ;
printf("%lld\n", ans);
}

B.找到树的直径,倍增地跳跃计算答案

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<functional>
#include<vector>
using namespace std;
typedef long long LL; int n;
vector<int>e[];
bool vis[];
int Root, Tail; int BFS(int st)
{
for (int i = ; i <= n; i++)vis[i] = false;
queue<int>q;
q.push(st);
vis[st] = true;
int ret = st;
while (!q.empty())
{
int t = q.front(); q.pop();
ret = t;
for (int i = ; i < e[t].size(); i++)
{
int to = e[t][i];
if (!vis[to])
{
q.push(to);
vis[to] = true;
}
}
}
return ret;
} int len; void DFS(int nx, int pr, int st)
{
len = max(len, st);
for (int i = ; i < e[nx].size(); i++)
{
int to = e[nx][i];
if (to != pr)
{
DFS(to, nx, st + );
}
}
} int main()
{
scanf("%d", &n);
for (int i = ; i <= n - ; i++)
{
int u, v;
scanf("%d %d", &u, &v);
e[u].push_back(v);
e[v].push_back(u);
}
Root = BFS();
Tail = BFS(Root);
len = ;
DFS(Root, -, );
//printf("%d %d\n", Root, Tail);
int ans = ;
int tl = ;
while (tl<len-)
{
ans++;
tl <<= ;
}
printf("%d\n", ans); }

C.水题

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<cstring>
#include<string>
#include<vector>
#include<map>
using namespace std; char s[];
int main()
{
scanf("%s", s);
int len = strlen(s);
int lsc = , pcms = ;
for (int i = ; i < len-; i++)
{
if (s[i] == 'L'&&s[i + ] == 'S'&&s[i + ] == 'C')lsc++;
}
for (int i = ; i < len - ; i++)
{
if (s[i] == 'P'&&s[i + ] == 'C'&&s[i + ] == 'M'&&s[i + ] == 'S')pcms++;
}
if (pcms > lsc)printf("PCMS\n");
else if (pcms < lsc)printf("LSC\n");
else printf("Tie\n"); }

D.比赛没来得及写的题。(1953.1.1居然是星期六!!一直以为是星期日!!!)

#include<cstdio>
#include<cmath>
#include<algorithm>
#include<cstring>
#include<string>
#include<iostream>
#include<map>
#include<vector>
#include<set>
#include<queue>
using namespace std;
int days[] = { , , , , , , , , , , , , }; int q, st, ed, day, month, gi[], ans[]; bool isleap(int year)
{
return (year % == ) || ((year % == ) && (year % ));
} int cal(int yy, int mm, int dd)
{
int sum = ;
for (int i = ; i < mm; i++)
{
sum += days[i];
if (isleap(yy) && i == )
sum++;
}
return sum+dd-;
} void cycle(int mm,int dd)
{
int cnt=,now = ;//1953/1/1是星期六
for (int i = ; i <= + ; i++)
{
if (mm == && dd == && !isleap(i))
{
ans[cnt++] = ;
}
else
{
ans[cnt++] = (cal(i, mm, dd) + now - ) % + ;
}
if (isleap(i))
now = (now + - ) % + ;
else
now = (now + - ) % + ;
}
} int main()
{
scanf("%d", &q);
while (q--)
{
memset(ans, , sizeof(ans));
memset(gi, , sizeof(gi));
scanf("%d %d %d %d", &st, &ed, &month, &day);
cycle(month, day);
int numed = (ed- + ) / ;
int numst = (st - ) / ;
for (int i = ; i <= ; i++)
{
gi[ans[i]] += (numed - numst);
}
int mped = ed - + - numed * ;
int mpst = st - - numst * ;
for (int i = ; i <= mpst; i++)
{
gi[ans[i]]--;
}
for (int i = ; i <= mped; i++)
{
gi[ans[i]]++;
}
printf("%d", gi[]);
for (int i = ; i <= ; i++)
{
printf(" %d", gi[i]);
}
puts("");
}
return ;
}

E.还没看,待补

F.还没写,待补

G.还没写,待补

H.几何板子题,两圆交点,我抄错板子错了好久quq

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<cstring>
#include<string>
#include<vector>
#include<cmath>
#include<map>
#include<functional>
#include<vector>
using namespace std;
const double eps = 1e-; struct Point
{
double x, y;
Point(double _a, double _b) :x(_a), y(_b) {}
Point() {}
}; Point intersection(const Point &u1, const Point &u2, const Point &v1, const Point &v2)
{
Point res = u1;
double t = ((u1.x - v1.x)*(v1.y - v2.y) - (u1.y - v1.y)*(v1.x - v2.x)) / ((u1.x - u2.x)*(v1.y - v2.y) - (u1.y - u2.y)*(v1.x - v2.x));
res.x += (u2.x - u1.x)*t;
res.y += (u2.y - u1.y)*t;
return res;
} double dis(const Point &p1, const Point &p2)
{
return sqrt((p1.x - p2.x)*(p1.x - p2.x) + (p1.y - p2.y)*(p1.y - p2.y));
} void play(const Point &c, double r, const Point &l1, const Point &l2, Point &p1, Point &p2)
{
Point p = c;
p.x += l1.y - l2.y;
p.y += l2.x - l1.x;
p = intersection(p, c, l1, l2);
double t = sqrt(r*r - dis(p, c)*dis(p, c)) / dis(l1, l2);
p1.x = p.x + (l2.x - l1.x)*t;
p1.y = p.y + (l2.y - l1.y)*t;
p2.x = p.x - (l2.x - l1.x)*t;
p2.y = p.y - (l2.y - l1.y)*t;
} void play2(const Point &c1, double r1, const Point &c2, double r2, Point &p1, Point &p2)
{
Point u, v;
double t = ( + (r1*r1 - r2*r2) / dis(c1, c2) / dis(c1, c2)) / ;
u.x = c1.x + (c2.x - c1.x)*t;
u.y = c1.y + (c2.y - c1.y)*t;
v.x = u.x + c1.y - c2.y;
v.y = u.y - c1.x + c2.x;
play(c1, r1, u, v, p1, p2);
} double x1, x2, r1, yy, y2, r2; int main()
{
cin >> x1 >> yy >> r1;
cin >> x2 >> y2 >> r2;
Point ans1, ans2;
if (r1 > r2) {
swap(x1, x2);
swap(yy, y2);
swap(r1, r2);
}
double ds = dis(Point(x1, yy), Point(x2, y2));
if (r2 >= ds)
{
printf("%.6lf %.6lf\n", x1, yy);
return ;
}
play2(Point(x1, yy), r1, Point(x2, y2), r2, ans1, ans2);
printf("%.6lf %.6lf\n", ans1.x, ans1.y);
return ;
}

I.瞎搞

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<cstring>
#include<string>
#include<vector>
#include<cmath>
#include<map>
#include<functional>
#include<vector>
using namespace std;
typedef long long ll;
const double eps = 1e-;
ll ax[];
int main(void) {
ll n;
scanf("%lld", &n);
for (int i = ; i < n; i++) {
scanf("%lld", &ax[i]);
}
if (n == ) {
printf("0\n");
return ;
}
else if (n == ) {
printf("%lld\n", min(abs(ax[] - ax[]),abs(ax[]+ax[])));
return ;
}
vector<ll>v;
ll sum = ;
for (int i = ; i<n - ; i++) {
sum += abs(ax[i + ] - ax[i]);
v.push_back(abs(ax[i + ] + ax[i]) - abs(ax[i + ] - ax[i]));
}
sort(v.begin(), v.end());
if (v[] < ) {
sum += v[];
}
if (v[] < ) {
sum += v[];
}
printf("%lld\n", sum);
}

J.还没写,待补

K.水题,四个角满足即可

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<cstring>
#include<string>
#include<vector>
#include<map>
#include<functional>
#include<vector>
using namespace std;
typedef long long LL; int n; int main()
{
int n, m, k;
int cnt = ;
scanf("%d %d %d", &n, &m, &k);
for (int i = ; i <= k; i++)
{
int x, y;
scanf("%d %d", &x, &y);
if (x == && y == m)
cnt++;
else if (x == && y == )
cnt++;
else if (x == n&&y == )
cnt++;
else if (x == n&&y == m)
cnt++;
}
int tmp = ;
if (n == && m == )
tmp = ;
else if (n == || m == )
tmp = ;
printf("%d\n", tmp - cnt);
return ;
}

L.还没写,待补

gym101522 [小熊骑士限定]La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2017的更多相关文章

  1. Codeforces Gym101522 C.Cheering-字符串 (La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2017)

    C.Cheering To boost contestants' performances in the 20th La Salle - Pui Ching Programming Challenge ...

  2. Codeforces Gym101522 D.Distribution of Days-算日期 (La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2017)

    D.Distribution of Days The Gregorian calendar is internationally the most widely used civil calendar ...

  3. Codeforces Gym101522 A. Ambiguous Dates (La Salle-Pui Ching Programming Challenge 培正喇沙編程挑戰賽 2017)

    A. Ambiguous Dates There are two popular formats for representing a date: day/month/year or month/da ...

  4. gym100676 [小熊骑士限定]2015 ACM Arabella Collegiate Programming Contest

    Kuma Rider久违的第二场训练,这场很水,又在vj的榜单上看到第一场的大哥了,2小时ak,大哥牛啤! A.水 #include<cstdio> #include<iostrea ...

  5. 动词的时态(Les temps du verbe )

    在开始讲解直陈式现在时的主要用法之前,我们有必要先搞清楚两个基本概念:▶语式(mode):语式是动词表达动作的方式.一个动作,可以作为实在的事表达出来,也可以作为希望或单纯设想的事表达出来,法语动词共 ...

  6. 每周一书-《鸟哥的Linux私房菜》获奖公布

    <鸟哥的Linux私房菜>一书的赠书活动时间为2016年10月19日到10月31日, 也就是今天结束. 首先要感谢QQ号为:1084830483(路在远方),来自哈尔滨工程大学的同学赠送给 ...

  7. 2017年USNews美国大学研究生专业排名

    2017年USNEWS美国大学研究生专业排名最佳商学院排名 排名 学校 费用 注册人数 #1 Harvard University Boston, MA $61,225 per year (full- ...

  8. CVPR 2017 Paper list

    CVPR2017 paper list Machine Learning 1 Spotlight 1-1A Exclusivity-Consistency Regularized Multi-View ...

  9. 数据库 之MySQL 简单教程

      So Easy系列之MySQL数据库教程 1.   数据库概述 1.1.  数据库概述 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库,它产生于距今六十多年前,随着信息技术和 ...

随机推荐

  1. mySQL 约束 (Constraints)

    约束用于限制加入表的数据的类型: 1.创建表时规定约束(通过 CREATE TABLE 语句) 2.表创建之后也可以(通过 ALTER TABLE 语句). 约束类型: NOT NULL(非空) UN ...

  2. SVN 远程访问

    第一种方法 https://www.cnblogs.com/Leo_wl/p/3475167.html#_label0 默认协议为:https 端口号:443 服务器地址:https://主机名/sv ...

  3. SDN期末作业——负载均衡

    作业链接 期末作业 1.负载均衡程序 代码 2.演示视频 地址 3.小组分工 小组:incredible five 构建拓扑:俞鋆 编写程序:陈绍纬.周龙荣 程序调试和视频录制:陈辉.林德望 4.个人 ...

  4. 【Alpha 冲刺】 11/12

    今日任务总结 人员 今日原定任务 完成情况 遇到问题 贡献值 胡武成 完成app端api编写 未完成 文件上传api还没完成 孙浩楷 1. 与后端交接, 2. 完成图片在线编辑插件引入 未完成 陷入僵 ...

  5. swift类型擦除的定义-swift的类型擦除只是一个类型高低阶转换的游戏。

    所谓swift的类型擦除是指: moand转换: 通过技术手段(通常是包装器),将具体类型的类型信息擦除掉了,只将类型的(某一个侧面的)抽象信息(通常指的是类型尊从的协议.接口.或基类)暴露出来. A ...

  6. bat替换文件的指定内容

    需求:替换文件my.ini中的1000 为10000,bat脚本如下: c:cd C:\Program Files\MySQL\MySQL Server 5.5copy my.ini my1126ba ...

  7. 天地图api地址

    天地图地址 http://lbs.tianditu.com/api-new/examples.html 参考资料 http://lbs.tianditu.com/api-new/class.html

  8. CVE-2017-8046(Spring Data Rest RCE)

    环境搭建参考第一个链接,springboot启动文件如下,不同的启类,将Application.class修改一下就可以了,直接debug.注意:默认版本是2.0.3版本,修改成低版本,看一下mvn下 ...

  9. docker swarm英文文档学习-1-概述

    参考https://docs.docker.com/engine/swarm/ Swarm mode overview群模式概述 Docker的当前版本包括集群模式,用于本地管理称为集群的Docker ...

  10. shiro实战系列(十一)之Caching

    Shiro 开发团队明白在许多应用程序中性能是至关重要的.Caching 是从第一天开始第一个建立在 Shiro 中的一流功 能,以确保安全操作保持尽可能的快.   然而,Caching 作为一个概念 ...