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. spark hadoop 对比 Resilient Distributed Datasets

    hadoop 迭代消耗大 每次迭代启动一个完整的MapReduce作业 spark 首要目标就是避免运算时 过多的网络和磁盘IO开销 Resilient Distributed Datasets ht ...

  2. C#调用Oracle存储过程的方法

    C#调用Oracle存储过程的方法 准备: 环境:pl/sql+oracle9i+vs2008 创建表test: create table TEST(  ID      NUMBER,//编号  NA ...

  3. [Codeforces 466C] Number of Ways

    [题目链接] https://codeforces.com/contest/466/problem/C [算法] 维护序列前缀和 , 枚举中间一段即可 , 详见代码 时间复杂度 : O(N) [代码] ...

  4. SQLAlchemy框架---ORM思想

  5. 如何在BCGControlBar工程的工具栏里面新增下拉列表控件

    通常情况下,工具栏里面都是一些按钮和图片,很少可以看到下拉列表控件,但是在某些应用场合,也需要用到下拉列表控件.今天在这里就简单讲解下如何在工具栏里添加下拉列表控件.   添加的过程也比较简单,在CM ...

  6. CAS和Oauth2的区别

    CAS是单点登陆(SSO) Oauth2是对某种资源进行授权访问

  7. Python机器学习算法 — 逻辑回归(Logistic Regression)

    逻辑回归--简介 逻辑回归(Logistic Regression)就是这样的一个过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证我们这个求解的模型 ...

  8. [Swift]圆周率π

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  9. 状态压缩+枚举 POJ 3279 Fliptile

    题目传送门 /* 题意:问最少翻转几次使得棋子都变白,输出翻转的位置 状态压缩+枚举:和之前UVA_11464差不多,枚举第一行,可以从上一行的状态知道当前是否必须翻转 */ #include < ...

  10. Docker学习系列(二):Docker三十分钟快速入门(上)

    一.背景 ​ 最近,Docker技术真是一片火热,它的出现也弥补了虚拟机资源消耗过高的问题,直接让虚拟化技术有了质的飞跃.那么本文我们来聊一聊Docker,和大家一起认识Docker,简单入门Dock ...