A - Acperience

HDU - 5734

题意:

给你一个加权向量,需要我们找到一个二进制向量和一个比例因子α,使得|W-αB|的平方最小,而B的取值为+1,-1,我们首先可以想到α为输入数据的平均值,考虑到是平方和,然后化简表达式,可以得到一个化简的式子,用n通分,可以做到没有除法,然后分子分母化简到互质。

#define _CRT_SECURE_NO_WARNINGS
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<algorithm>
#include<iostream>
#include<string>
#include<cstring>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
using namespace std;
typedef long long ll;
const double PI = acos(-1.0);
const double eps = 1e-6;
const int INF = 0x3f3f3f3f;
ll gcd(ll a, ll b) {
return a % b == 0 ? b : gcd(b, a%b);
}
int main()
{
ll n;
int kase;
ll sum, sum2;
while (~scanf("%d", &kase))
{ while (kase--)
{
scanf("%lld", &n);
sum = 0;
sum2 = 0;
int num;
for (int i = 0; i < n; i++) {
scanf("%d", &num);
sum += abs(num);
sum2 += num * num;
}
ll a = n * sum2 - sum*sum;
ll ans = gcd(a, n);
//cout << a / ans << " " << n / ans << endl;
printf("%lld/%lld\n", a/ans,n/ans);
}
} return 0;
}

E - Eureka

HDU - 5738

题意:

由题目中的不等式可以分析得到,对于共线的点可以在一个集合中,于是这个问题转化为在全集中划分共线的点的集合,最后用组合数学求数量。这样就可以解决这个问题。

接下来的问题是如果求得在一个点的集合数量,可以从一个点出发,处理其他啊全部的点,下一次去掉这个点,O(n*n)处理,这样考虑这个点与其它点的向量关系,可以用map保存每种向量的数量,这里特殊处理一下,在点的重载减法里面处理。即在这条直线上的点的数目,对于重复的点也需要保存一下,组合数计数加进去。

这个题还有一点处理:对这种方法,从一点个出发,我在计数时候一定取这个点,这样虽然处理的直线会有重复,但是我的计数没有重复,所以这个的处理并不是一次计算一条线段上面的全部集合数量。

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<algorithm>
#include<string>
#include<string.h>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<map>
typedef long long ll;
using namespace std; struct node
{
int x, y;
bool operator<(const node& p)const {
if (x != p.x)return x < p.x;
return y < p.y;
}
bool operator== (const node& p)const {
if (x == p.x&&y == p.y)return true;
return false;
} }; int gcd(int x, int y)
{
if (x == 0)return y;
else return gcd(y%x, x);
}
node operator-(node a, node b) {
node temp;
temp.x = a.x - b.x; temp.y = a.y - b.y;
if (temp.x != 0 || temp.y != 0) {
int ans = gcd(temp.x, temp.y);
if (ans != 0) { temp.x /= ans; temp.y /= ans; }
}
if (temp.x == 0)temp.y = abs(temp.y);
else if (temp.x < 0) {
temp.x = -temp.x;
temp.y = -temp.y;
}
return temp;
}
const int maxn = 1001;
node no[maxn]; map<node, int>::iterator it;
typedef long long ll;
const int mod = 1e9 + 7;
ll num[maxn];
ll ans;
int main() {
int T;
num[0] = 1;
for (int i = 1; i<maxn; i++)
{
num[i] = num[i - 1] * 2;
num[i] %= mod;
}
scanf("%d", &T);
while (T--) { int n;
ans = 0;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d%d", &no[i].x, &no[i].y);
}
for (int i = 0; i < n; i++) {
map<node, int>p;
int len = 1;
for (int j = i + 1; j < n; j++) {
if (no[i] == no[j]) {
len++;
continue;
}
node temp = no[i] - no[j];
p[temp]++;
}
//len-1是保证处理的这个点加入集合
if (len > 1)
{
ans += num[len - 1] - 1;
ans %= mod;
}
for (it = p.begin(); it != p.end(); it++) {
int m = it->second;
//num[n]-1是保证在外面至少取一个点。
ans = ans+((ll)num[len - 1])*((ll)num[m] - 1); ans = ans % mod;
}
}
printf("%I64d\n", ans);
} }

I - It's All In The Mind

HDU - 5742

题意:

求一个分式的最大值,即保存前两个最大(a1,a2),后面最小(a3 a4 a5....),可以保证题目最优答案。由于非递增型,对第一第二的数据特殊处理,a3及其以后,保证ak前面的等于ak即可,这样保证最小。

队友的这种处理,还是很方便a2 = min(a1, a2);,不需要特殊处理,写出来就AC了。

#define _CRT_SECURE_NO_WARNINGS
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<algorithm>
#include<iostream>
#include<string>
#include<cstring>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
using namespace std;
typedef long long ll;
const double PI = acos(-1.0);
const double eps = 1e-6;
const int INF = 0x3f3f3f3f;
int gcd(int a, int b)
{
return a % b == 0 ? b : gcd(b, a % b);
}
int main()
{
ll n,m;
int kase;
ll sum, sum2;
int num;
while (~scanf("%d", &kase))
{
int x, y;
int a1,a2, b;
while (kase--)
{
a1 =100,a2=100;
b = 0;
scanf("%lld%lld", &n,&m);
int j = 1;
bool flag = 0;
for (int i = 1; i <= m; i++) {
scanf("%d%d", &x, &y);
if (x == 1) {
a1 = y;
}
else if (x == 2) {
a2 = y;
}
else {
if (j < 3)j = 3;
for (j; j <= x; j++)
b += y;
}
}
a2 = min(a1, a2);
b += (a1+a2);
int ans = gcd(a1+a2, b);
cout << (a1+a2)/ ans << "/" << b / ans << endl;
}
}
return 0;
}

K - Keep On Movin

HDU - 5744

题意:

maximize the length of the shortest palindromic string

保证的是每一个字符串都是回文的,对于偶数的字母类型,可以保证,加入任何回文串,对于奇数的字母类型,可以把其中的偶数的个数减掉,最后保留的是1,其它的看成偶数的字母类型,加入到偶数的类型中。

一个技巧,把每两个字母看成一个组,这个不需要考虑字母的组数,直接用除法平均分配就好了。

#define _CRT_SECURE_NO_WARNINGS
#include<cstdio>
#include<cstring>
#include<iomanip>
#include<algorithm>
#include<iostream>
#include<string>
#include<cstring>
#include<vector>
#include<stack>
#include<bitset>
#include<cstdlib>
#include<cmath>
#include<set>
#include<list>
#include<deque>
#include<map>
#include<queue>
using namespace std;
typedef long long ll;
const double PI = acos(-1.0);
const double eps = 1e-6;
const int INF = 0x3f3f3f3f;
int gcd(int a, int b)
{
return a % b == 0 ? b : gcd(b, a % b);
}
int main()
{
ll n;
int kase;
ll sum, sum2;
int num;
while (~scanf("%d", &kase))
{ while (kase--)
{
sum = 0;
int k = 0;
scanf("%lld", &n);
for (int i = 0; i < n; i++)
{
scanf("%d", &num);
if(num & 1)
{k++;
sum += num - 1;
}
else sum += num;
}
sum = sum / 2;
if(k>0)cout << sum/k*2+1<<endl;
else cout << sum*2 << endl; }
}
return 0;
}

L - La Vie en rose

HDU - 5745

题解连接

DP还不行,嘤嘤嘤......

2016 Multi-University Training Contest 2题解报告的更多相关文章

  1. 2016 Al-Baath University Training Camp Contest-1

    2016 Al-Baath University Training Camp Contest-1 A题:http://codeforces.com/gym/101028/problem/A 题意:比赛 ...

  2. 2016 Multi-University Training Contest 6 题解

    我只能说: A Boring Question 下面公式重复了一行 \[ \sum\_{0\leq k\_{1},k\_{2},\cdots k\_{m}\leq n}\prod\_{1\leq j& ...

  3. 2016 Al-Baath University Training Camp Contest-1 E

    Description ACM-SCPC-2017 is approaching every university is trying to do its best in order to be th ...

  4. 2016 Al-Baath University Training Camp Contest-1 F

    Description Zaid has two words, a of length between 4 and 1000 and b of length 4 exactly. The word a ...

  5. 2016 Al-Baath University Training Camp Contest-1 A

    Description Tourist likes competitive programming and he has his own Codeforces account. He particip ...

  6. 2015 Multi-University Training Contest 1 题解&&总结

    ---------- HDU 5288 OO’s Sequence 题意 给定一个数列(长度<$10^5$),求有多少区间[l,r],且区间内有多少数,满足区间内其它数不是他的约数. 数的范围$ ...

  7. 2015 Multi-University Training Contest 1 题解 BY FZUw

    题目链接:5288-5299 HDU5288 题解原文链接:我是链接

  8. 2016 Al-Baath University Training Camp Contest-1 I. March Rain —— 二分

    题目链接:http://codeforces.com/problemset/gymProblem/101028/I I. March Rain time limit per test 2 second ...

  9. AtCoder Beginner Contest 151 题解报告

    总的来说,这次的题目比较水,然而菜菜的我并没有把所有题目都做完,话不多说,直接来干货: A:Next Alphabet 题目链接:https://atcoder.jp/contests/abc151/ ...

随机推荐

  1. 关于Docker目录挂载的总结(转)

    关于Docker目录挂载的总结 Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定. 譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过 ...

  2. 【redis持久化】redis持久化理解

    1.以下内容仅为个人理解和总结,仅供参考,万万不可全盘真信,内容会进行实时改进和修正 2.redis持久化: 参考链接1.https://redis.io/topics/persistence  -- ...

  3. 【mysql】不可不知的Metadata Lock

    一.问题发生 说一个现象,当收到服务器报警之后,数据库服务器CPU使用超过90%,通过 show processlist 一看,满屏都是 Waiting for table metadata lock ...

  4. android构建过程

    参考: http://blog.csdn.net/shangmingchao/article/details/47375111 首先,需要了解一下构建APK的七大工具: ①aapt 全称是Androi ...

  5. 配置logback

    相关组件] Logback是由log4j创始人设计的又一个开源日志组件. logback当前分成三个模块:logback-core.logback- classic和logback-access. l ...

  6. bootstrap-datepicker应用

    参考本人的github:https://github.com/gmqllf/Datepicker-for-Bootstrap (fork官方的) 一.使用datepicker for bootstra ...

  7. CentOS 7.2编译安装PHP7

    原文: https://typecodes.com/web/centos7compilephp7.html?utm_source=tuicool&utm_medium=referralPHP官 ...

  8. 在IIS上安装 thinkphp的方法

    1. 在iis安装 urlwrite 2. 安装php处理程序映射 3. 在项目中建立web.config, 键入以下内容: <?xml version="1.0" enco ...

  9. The thumbprint of same asymmetric key is not same in 'SQL Server Connector for Microsoft Azure Key Vault' 1.0.4.0 and 'SQL Server Connector for Microsoft Azure Key

    https://support.microsoft.com/en-us/help/4470999/db-backup-problems-to-sql-server-connector-for-azur ...

  10. 【资料下载区】【iCore1S相关代码、资料下载地址】更新日期2017/10/09

    [iCore1S相关文档][更新中...] iCore1S原理图(PDF)下载iCore1S引脚注释(PDF)下载 [iCore1S相关例程代码][ARM][更新中...] DEMO1.0测试程序发布 ...