Solved:4

rank:268

C. Dynamic Graph Matching  状压DP一下

#include <stdio.h>
#include <algorithm>
#include <algorithm>
#include <string.h>
using namespace std;
typedef long long ll;
const ll mod = 1e9 + ; ll dp[ << ];
ll ans[];
int num[ << ]; void work()
{
int len = << ;
for(int i = ; i < len; i++)
{
int x = i;
while(x)
{
if(x & ) num[i]++;
x >>= ;
}
}
} int main()
{
work();
int T;
scanf("%d", &T);
while(T--)
{
int n, m;
scanf("%d%d", &n, &m);
memset(dp, , sizeof(dp));
memset(ans, , sizeof(ans));
dp[] = ; char s[];
int len = << n;
for(int i = ; i <= m; i++)
{
int a, b;
scanf("%s", s);
scanf("%d%d", &a, &b);
a--, b--; int tmp = ( << a) | ( << b);
for(int i = ; i < len; i++)
{
if(num[i] & ) continue;
if((i & tmp) == tmp)
{
if(s[] == '+')
{
dp[i] = (dp[i] + dp[i - tmp]) % mod;
ans[num[i] / ] += dp[i - tmp];
ans[num[i] / ] %= mod;
}
else
{
dp[i] -= dp[i - tmp];
dp[i] = (dp[i] + mod) % mod;
ans[num[i] / ] -= dp[i - tmp];
ans[num[i] / ] += mod;
ans[num[i] / ] %= mod;
}
}
}
for(int i = ; i <= n / ; i++)
{
if(i == ) printf("%d", ans[i]);
else printf(" %d", ans[i]);
}
puts("");
}
}
return ;
}

D. Euler Function

#include <stdio.h>
#include <algorithm>
#include <iostream>
using namespace std;
typedef long long ll; int getphi(int o)
{
int res = o;
int n = o;
for(int i = ; i * i <= n; i++)
{
if(n % i == )
{
res -= res / i;
while(n % i == ) n /= i;
}
}
if(n > ) res -= res / n;
return res;
} int main()
{
int T;
scanf("%d", &T);
while(T--)
{
int n;
scanf("%d", &n);
if(n == ) printf("5\n");
else if(n == ) printf("7\n");
else printf("%d\n", n + );
}
return ;
}

L. Visual Cube

#include <stdio.h>
#include <algorithm>
#include <iostream>
#include <string.h>
using namespace std; char tu[][]; int main()
{
int T;
scanf("%d", &T);
while(T--)
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c); int lie = a * + + b * ;
int hang = c * + + b * ; for(int i = ; i <= hang; i++)
for(int j = ; j <= lie; j++)
tu[i][j] = '.'; for(int i = ; i <= hang; i += )
for(int j = ; j <= lie; j += )
tu[i][j] = '+'; for(int i = ; i <= hang; i += )
for(int j = ; j <= lie; j += )
tu[i][j] = '-'; for(int i = ; i <= hang; i+= )
for(int j = ; j <= lie; j += )
tu[i][j] = '|'; int in = ;
int jn = b * + ;
for(int i = ; i <= b; i++)
{
in += ;
jn -= ;
for(int j = ; j <= a + ; j++)
{
tu[in][jn + (j - ) * ] = '.';
tu[in][jn + (j - ) * + ] = '/';
}
} int inj = lie + ;
int inh = ;
for(int i = ; i <= b; i++)
{
inj -= ;
inh += ;
for(int j = ; j <= c; j++)
{
tu[inh + (j - ) * ][inj] = '.';
tu[inh + (j - ) * + ][inj] = '/';
}
} int len = b * + ;
for(int i = ; i <= b * ; i++)
{
len--;
for(int j = ; j <= len; j++)
tu[i][j] = '.';
} len = b * + ;
for(int i = hang; i >= hang - b * ; i--)
{
len--;
for(int j = lie - len + ; j <= lie; j++)
tu[i][j] = '.';
} for(int i = ; i <= hang; i++)
{
for(int j = ; j <= lie; j++)
printf("%c", tu[i][j]);
puts("");
}
}
return ;
}

HDU多校Round 3的更多相关文章

  1. HDU多校Round 8

    Solved:2 rank:141 D. Parentheses Matrix n,m有一个小于6的时候是一种构造方法 答案是n + (m - 2) / 2 (n > m) 都大于6的时候 可以 ...

  2. HDU多校Round 7

    Solved:2 rank:293 J. Sequense 不知道自己写的什么东西 以后整数分块直接用 n / (n / i)表示一个块内相同n / i的最大i #include <bits/s ...

  3. HDU多校Round 6

    Solved:2 rank:452 I. Werewolf 没有铁人 找铁狼 如果一个环中只有一条狼人边那个人就是铁狼 说铁狼是好人的人也是铁狼 #include <bits/stdc++.h& ...

  4. HDU多校Round 5

    Solved:3 rank:71 E. Everything Has Changed #include <bits/stdc++.h> using namespace std; const ...

  5. HDU多校Round 4

    Solved:3 rank:405................................. B. Harvest of Apples 知道了S(n,m) 可以o(1)的求S(n - 1, m ...

  6. HDU多校Round 1

    Solved:5 rank:172 A.Maximum Multiple #include <stdio.h> #include <algorithm> #include &l ...

  7. hdu 5667 BestCoder Round #80 矩阵快速幂

    Sequence  Accepts: 59  Submissions: 650  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 65536 ...

  8. hdu 5643 BestCoder Round #75

    King's Game  Accepts: 249  Submissions: 671  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 6 ...

  9. hdu 5641 BestCoder Round #75

    King's Phone  Accepts: 310  Submissions: 2980  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: ...

随机推荐

  1. ios29--多线程

    进程是指在系统中正在运行的一个应用程序(一个程序可以对应多个进程).每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内.比如同时打开迅雷.Xcode,系统就会分别启动2个进程.1个进程要 ...

  2. 嵌入式Linux系统---ppp拨号,4G模块上网【转】

    本文转载自:http://blog.csdn.net/qq562029186/article/details/65438553 4G模块PPP拨号上网 方法1 所需文件: xxx-chat-conne ...

  3. What does jQuery.fn mean?

    n jQuery, the fn property is just an alias to the prototype property. The jQuery identifier (or $) i ...

  4. git 配置代理

    1.目的:配置proxy,使得git可以克隆github上的代码 2.方法:执行下面三条命令,配置下git的代理 git config --global https.proxy https://w00 ...

  5. 网络流之最大流算法(EK算法和Dinc算法)

    最大流 网络流的定义: 在一个网络(有流量)中有两个特殊的点,一个是网络的源点(s),流量只出不进,一个是网络的汇点(t),流量只进不出. 最大流:就是求s-->t的最大流量 假设 u,v 两个 ...

  6. 并不对劲的spoj1811

    题意是求两个字符串的lcs,两个串都只包含小写字母. 本题既可以用后缀自动机,又可以用后缀数组. 对于后缀自动机,就是一道模板题,直接对于一个字符串建后缀自动机再用另一个串查询就行. 对于后缀数组,其 ...

  7. 蓝书2.2 KMP算法

    T1 Radio Transmission bzoj 1355 题目大意: 一个字符串,它是由某个字符串不断自我连接形成的 但是这个字符串是不确定的,现在只想知道它的最短长度是多少 思路: kmp 输 ...

  8. 【HAOI 2007】 理想的正方形

    [题目链接] 点击打开链接 [算法] 单调队列 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 1010 co ...

  9. MySQL:目录

    ylbtech-MySQL:目录 1.返回顶部   2.返回顶部   3.返回顶部   4.返回顶部   5.返回顶部     6.返回顶部   作者:ylbtech出处:http://ylbtech ...

  10. CSS里#和.以及大小写

    # 选定ID .  选定class   大小写严格区分,因此选定class和设定class等要一致