BestCoder Round #16

题目链接

这场挫掉了,3挂2,都是非常sb的错误 23333 QAQ

A:每一个数字。左边个数乘上右边个数,就是能够组成的区间个数,然后乘的过程注意取模不然会爆掉

B:dp,dp[i][2]记录下第一长的LIS,和第二长的LIS。哎,转移的时候一个地方写挫掉了导致悲剧啊QAQ

C:首先假设知道Nim游戏的,就非常easy转化问题为。一些数字能否选几个能否异或和为0。那么就是每一个数字拆成40位。然后每一位异或和为0。这样就能够构造出40个方程,然后高斯消元求解,假设有自由变元就是有解。由于必定有一个全是0的解。而由于不能全取,所以这个解是错误的,那么就变成推断自由变元个数了,还是一个地方写挫掉了悲剧啊QAQ

代码:

A:

#include <cstdio>
#include <cstring>
#include <vector>
#include <set>
#include <algorithm>
using namespace std; typedef long long ll;
const int N = 500005;
const ll MOD = 1000000007; int t, n;
ll a; int main() {
scanf("%d", &t);
while (t--) {
scanf("%d", &n);
ll ans = 0;
for (ll i = 0; i < n; i++) {
scanf("%I64d", &a);
ans = (ans + a * (n - i) % MOD * (i + 1) % MOD) % MOD;
}
printf("%I64d\n", ans);
}
return 0;
}

B:

#include <cstdio>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std; const int N = 1005; int t, n, a[N], dp[N][2]; int main() {
scanf("%d", &t);
while (t--) {
scanf("%d", &n);
int ans0 = 0, ans1 = 0;
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
dp[i][0] = 1; dp[i][1] = 0;
for (int j = 1; j < i; j++) {
if (a[i] <= a[j]) continue;
if (dp[i][0] <= dp[j][0] + 1) {
dp[i][1] = dp[i][0];
dp[i][0] = dp[j][0] + 1;
} else if (dp[i][1] < dp[j][0] + 1) {
dp[i][1] = dp[j][0] + 1;
}
dp[i][1] = max(dp[i][1], dp[j][1] + 1);
}
if (ans0 <= dp[i][0]) {
ans1 = ans0;
ans0 = dp[i][0];
} else if (ans1 < dp[i][0]) ans1 = dp[i][0];
ans1 = max(ans1, dp[i][1]);
}
printf("%d\n", ans1);
}
return 0;
}

C:

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; typedef long long ll; const int N = 1005;
int t, n, A[45][N];
ll a; int rank(int m, int n) {
int i = 0, j = 0, k, r, u;
while (i < m && j < n) {
r = i;
for (k = i; k < m; k++)
if (A[k][j]) {r = k; break;}
if (A[r][j]) {
if (r != i) for(k = 0; k <= n; k++) swap(A[r][k], A[i][k]);
for (u = i + 1; u < m; u++) if (A[u][j])
for (k = i; k <= n; k++) A[u][k] ^= A[i][k];
i++;
}
j++;
}
return n - i;
} int main() {
scanf("%d", &t);
while (t--) {
scanf("%d", &n);
memset(A, 0, sizeof(A));
for (int i = 0; i < n; i++) {
scanf("%lld", &a);
for (int j = 0; j < 40; j++)
A[j][i] = (a>>j)&1;
}
printf("%s\n", rank(40, n) > 0 ? "Yes" : "No");
}
return 0;
}

版权声明:本文博客原创文章,博客,未经同意,不得转载。

BestCoder Round #16的更多相关文章

  1. HDU5088——Revenge of Nim II(高斯消元&矩阵的秩)(BestCoder Round #16)

    Revenge of Nim II Problem DescriptionNim is a mathematical game of strategy in which two players tak ...

  2. HDU5087——Revenge of LIS II(BestCoder Round #16)

    Revenge of LIS II Problem DescriptionIn computer science, the longest increasing subsequence problem ...

  3. HDU5086——Revenge of Segment Tree(BestCoder Round #16)

    Revenge of Segment Tree Problem DescriptionIn computer science, a segment tree is a tree data struct ...

  4. hdu 5086 Revenge of Segment Tree(BestCoder Round #16)

    Revenge of Segment Tree                                                          Time Limit: 4000/20 ...

  5. bestcoder Round #7 前三题题解

    BestCoder Round #7 Start Time : 2014-08-31 19:00:00    End Time : 2014-08-31 21:00:00Contest Type : ...

  6. hdu5631 BestCoder Round #73 (div.2)

    Rikka with Graph  Accepts: 123  Submissions: 525  Time Limit: 2000/1000 MS (Java/Others)  Memory Lim ...

  7. hdu5630 BestCoder Round #73 (div.2)

    Rikka with Chess  Accepts: 393  Submissions: 548  Time Limit: 2000/1000 MS (Java/Others)  Memory Lim ...

  8. (BestCoder Round #64 (div.2))Array

    BestCoder Round #64 (div.2) Array 问题描述 Vicky是个热爱数学的魔法师,拥有复制创造的能力. 一开始他拥有一个数列{1}.每过一天,他将他当天的数列复制一遍,放在 ...

  9. BestCoder Round #89 02单调队列优化dp

    1.BestCoder Round #89 2.总结:4个题,只能做A.B,全都靠hack上分.. 01  HDU 5944   水 1.题意:一个字符串,求有多少组字符y,r,x的下标能组成等比数列 ...

随机推荐

  1. 《javascript高级编程》读书笔记(三)变量、范围和内存的问题

     第四章:变量.范围和内存的问题 检測类型:typeof是确定一个变量是字符串.数值.布尔值,还是undefined的最佳工具.可是假设变量的值是一个对象或null,typeof仅仅会返回" ...

  2. SecureCRT学习之道:用SecureCRT来上传和下载数据

    今天才知道,原来SecureCRT可以使用linux下的zmodem协议来快速的传送文件,而且还使用非常方便哦,我还傻傻的找其他软件来sftp,笨死了:(你只要设置一下上传和下载的默认目录就行opti ...

  3. GlusterFS源代码解析 —— GlusterFS 简单介绍

    原文地址:http://blog.csdn.net/wangyuling1234567890/article/details/24564185 -- -- 本系列博客源代码是基于GlusterFS 3 ...

  4. LeetCode: Valid Palindrome [125]

    [题目] Given a string, determine if it is a palindrome, considering only alphanumeric characters and i ...

  5. M3U8格式解说及实际应用分析

    M3U8有啥优点 ? 网上搜索了一下,大家众说纷纭,个人理解主要是能够做多码率的适配,依据网络带宽,client会选择一个适合自己码率的文件进行播放,保证视频流的流畅. 在IOS device和mac ...

  6. 带鉴权信息的SIP呼叫

    带鉴权信息的SIP呼叫 INVITE sip:1000@192.168.50.34SIP/2.0 Via: SIP/2.0/UDP192.168.50.32:2445;branch=z9hG4bK-d ...

  7. spring问题排查-调低日志等级

    问题描写叙述 1. 页面经过一次改动后,提交后页面出现400错误,可是后台并没有输出不论什么错误信息. 2. debug监听应页面对应的提交链接也没有不论什么反应(没有进入后台的controller方 ...

  8. uva10635 LCS映射转LIS

    题目给定 2个序列,要我们求LCS,但是序列的长度最长是250*250, LCS的时间复杂度是O(N*N),所以无法解决 我们可以第一个序列的数字,按位置,映射为1.2.3.4.5.6.7.8.9 那 ...

  9. java大全经典的书面采访

    果学网  -专注IT在线www.prismcollege.com 1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面.以便更充分地注意与当前目标有关的方面.抽象并 ...

  10. spring 重定向以及转发 乱码问题解决

    1.spring 转发 request.setAttribute("id", id); request.setAttribute("name",name); r ...