HDU 5045 5047 5050 5053

太菜了,名额差点没保住。吓尿。。赶紧开刷树链抛分

5045:状压DP。压缩10个人。因为两个人不能差2以上,所以能够用01表示

5047:推推公式就可以,每次交线多4条

5050:求GCD。用java大叔就可以

5053:签到题

代码:

5045:

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; const int N = 1025; int t, n, m, vis[N][N];
double dp[N][N], g[15][N]; double dfs(int u, int num) {
if (u == (1<<n) - 1) u = 0;
if (vis[u][num]) return dp[u][num];
vis[u][num] = 1;
if (num == m) return dp[u][num] = 0;
dp[u][num] = 0;
for (int i = 0; i < n; i++) {
if (u&(1<<i)) continue;
dp[u][num] = max(dp[u][num], dfs(u|(1<<i), num + 1) + g[i][num]);
}
return dp[u][num];
} int main() {
int cas = 0;
scanf("%d", &t);
while (t--) {
scanf("%d%d", &n, &m);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
scanf("%lf", &g[i][j]);
}
}
memset(vis, 0, sizeof(vis));
printf("Case #%d: %.5lf\n", ++cas, dfs(0, 0));
}
return 0;
}

5047:

#include <cstdio>
#include <cstring> typedef long long ll; const ll MOD = 100000000;
int t;
ll n; struct Num {
ll num[5];
int len;
Num() {
len = 0;
memset(num, 0, sizeof(num));
}
void init(ll x) {
len = 0;
if (x == 0) {
len = 1;
num[0] = 0;
return;
}
while (x) {
num[len++] = x % MOD;
x /= MOD;
}
} Num operator * (Num c) {
Num ans;
for (int i = 0; i < len; i++) {
for (int j = 0; j < c.len; j++) {
ans.num[i + j] += num[i] * c.num[j];
}
}
ans.len = len + c.len;
for (int i = 0; i < ans.len; i++) {
ans.num[i + 1] += ans.num[i] / MOD;
ans.num[i] %= MOD;
}
return ans;
} void add() {
while (len && num[len - 1] == 0) len--;
num[0] += 2;
for (int i = 0; i < len; i++) {
num[i + 1] += num[i] / MOD;
num[i] %= MOD;
}
if (num[len]) len++;
while (len && num[len - 1] == 0) len--;
} void print() {
while (len && num[len - 1] == 0) len--;
for (int i = len - 1; i >= 0; i--) {
if (i == len - 1) printf("%I64d", num[i]);
else printf("%08I64d", num[i]);
}
printf("\n");
}
} A, B; int main() {
int cas = 0;
scanf("%d", &t);
while (t--) {
scanf("%I64d", &n);
A.init(n - 1);
B.init(8 * n + 1);
Num c = (A * B);
c.add();
printf("Case #%d: ", ++cas);
c.print();
}
return 0;
}

5050:

import java.util.*;
import java.math.*;
import java.io.*; public class Main {
public static BigInteger gcd(BigInteger a, BigInteger b) {
if (b.equals(BigInteger.valueOf(0)) == true) return a;
return gcd(b, a.mod(b));
}
public static void main(String args[]) {
Scanner cin = new Scanner(System.in);
int t;
t = cin.nextInt();
String a, b;
BigInteger aa, bb;
for (int cas = 1; cas <= t; cas++) {
a = cin.next();
b = cin.next();
aa = BigInteger.valueOf(0);
bb = BigInteger.valueOf(0);
for (int i = 0; i < a.length(); i++) {
aa = aa.multiply(BigInteger.valueOf(2));
if (a.charAt(i) == '1') aa = aa.add(BigInteger.valueOf(1));
}
for (int i = 0; i < b.length(); i++) {
bb = bb.multiply(BigInteger.valueOf(2));
if (b.charAt(i) == '1') bb = bb.add(BigInteger.valueOf(1));
}
BigInteger tmp = gcd(aa, bb);
String ans = "";
while (tmp.equals(BigInteger.valueOf(0)) == false) {
if (tmp.mod(BigInteger.valueOf(2)).equals(BigInteger.valueOf(1))) ans += '1';
else ans += '0';
tmp = tmp.divide(BigInteger.valueOf(2));
}
System.out.print("Case #");
System.out.print(cas);
System.out.print(": ");
for (int i = ans.length() - 1; i >= 0; i--)
System.out.print(ans.charAt(i));
System.out.println();
}
}
}

5053:

#include <cstdio>
#include <cstring>
#include <algorithm>
#include <vector>
#include <set>
using namespace std; typedef long long ll; int t;
ll a, b; int main() {
int cas = 0;
scanf("%d", &t);
while (t--) {
scanf("%I64d%I64d", &a, &b);
ll sum = 0;
for (ll i = a; i <= b; i++)
sum += i * i * i;
printf("Case #%d: %I64d\n", ++cas, sum);
}
return 0;
}

HDU 5045 5047 5050 5053(上海网络赛E,F,I,L)的更多相关文章

  1. HDU 5045 状压DP 上海网赛

    比赛的时候想的是把n个n个的题目进行状压 但这样不能讲究顺序,当时精神面貌也不好,真是挫死了 其实此题的另一个角度就是一个n个数的排列,如果我对n个人进行状压,外面套一个按题目循序渐进的大循环,那么, ...

  2. 2019上海网络赛 F. Rhyme scheme 普通dp

    Rhyme scheme Problem Describe A rhyme scheme is the pattern of rhymes at the end of each line of a p ...

  3. HDU 4768 Flyer (2013长春网络赛1010题,二分)

    Flyer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  4. HDU 4747 Mex (2013杭州网络赛1010题,线段树)

    Mex Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submis ...

  5. HDU 4733 G(x) (2013成都网络赛,递推)

    G(x) Time Limit: 2000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  6. hdu 6152 : Friend-Graph (2017 CCPC网络赛 1003)

    题目链接 裸的结论题.百度 Ramsey定理.刚学过之后以为在哪也不会用到23333333333,没想到今天网络赛居然出了.顺利在题面更改前A掉~~~(我觉得要不是我开机慢+编译慢+中间暂时死机,我还 ...

  7. 2014上海网络赛 HDU 5053 the Sum of Cube

    水 #include <stdio.h> #include <stdlib.h> #include<math.h> #include<iostream> ...

  8. hdu 5053 the Sum of Cube(上海网络赛)

    the Sum of Cube Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  9. hdu 5476 Explore Track of Point(2015上海网络赛)

    题目链接:hdu 5476 今天和队友们搞出3道水题后就一直卡在这儿了,唉,真惨啊……看着被一名一名地挤出晋级名次,确实很不好受,这道恶心的几何题被我们3个搞了3.4个小时,我想到一半时发现样例输出是 ...

随机推荐

  1. 设计模式之工厂模式之简单工厂(php实现)

    github源码地址: git@github.com:ZQCard/design_pattern.git 1.简单工厂模式 特点:将调用者与创建者分离,调用者直接向工厂请求,减少代码的耦合.提高系统的 ...

  2. cornerstone

    这东西是mac上的svn,忽然就不对劲了.感觉就是代码就是没拿对.里面显示都是正确的. 删了重新拿....

  3. tensorflow cnn+rnn基本结构

    #CNN x = tf.placeholder(tf.float32,[None,input_node],name="x_input") y_ = tf.placeholder(t ...

  4. PHP Warning: 的解决方法

    在后台管理,用header("location:");做返回时,总是不能正常返回, Warning: Cannot modify header information - head ...

  5. 【前端开发】 5分钟创建 Mock Server

    http://blog.csdn.net/wxqee/article/details/50165581 NOTIFY 官网文档现在已经很简约.很强大了,建议直接点击这里: Getting Starte ...

  6. redux VS mobx (装饰器配合使用)

    前言:redux和mobx都是状态管理器,避免父级到子级再到子子级嵌套单向数据流,可以逻辑清晰的管理更新共享数据.(刷新页面redux储蓄数据即消失) 配置使用装饰器(使用高阶函数包装你的组件): n ...

  7. C++_友元函数(转)

    1.为什么要引入友元函数:在实现类之间数据共享时,减少系统开销,提高效率 具体来说:为了使其他类的成员函数直接访问该类的私有变量 即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同 ...

  8. Nginx:subrequest的使用方式

    参考资料<深入理解Nginx> subrequest是由HTTP框架提供的一种分解复杂请求的设计模式. 它可以把原始请求分解为许多子请求,使得诸多请求协同完成一个用户请求,并且每个请求只关 ...

  9. rabbit mq 安装

    不知道为什么上不去erlang的官网,所以只能到中文社区来下载了. http://www.cnerlang.com/ 我下载的是下面这个版本 http://download.cnerlang.com/ ...

  10. 微软同步发行Windows 10和Windows 10 Mobile系统更新

    微软今天同步公布了新的 Windows 10 Redstone PC 和 Windows 10 Mobile 预览版. PC 版本是 Build 14271.Mobile 版本是 Build 1426 ...