HDU多校Round 3
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的更多相关文章
- HDU多校Round 8
Solved:2 rank:141 D. Parentheses Matrix n,m有一个小于6的时候是一种构造方法 答案是n + (m - 2) / 2 (n > m) 都大于6的时候 可以 ...
- HDU多校Round 7
Solved:2 rank:293 J. Sequense 不知道自己写的什么东西 以后整数分块直接用 n / (n / i)表示一个块内相同n / i的最大i #include <bits/s ...
- HDU多校Round 6
Solved:2 rank:452 I. Werewolf 没有铁人 找铁狼 如果一个环中只有一条狼人边那个人就是铁狼 说铁狼是好人的人也是铁狼 #include <bits/stdc++.h& ...
- HDU多校Round 5
Solved:3 rank:71 E. Everything Has Changed #include <bits/stdc++.h> using namespace std; const ...
- HDU多校Round 4
Solved:3 rank:405................................. B. Harvest of Apples 知道了S(n,m) 可以o(1)的求S(n - 1, m ...
- HDU多校Round 1
Solved:5 rank:172 A.Maximum Multiple #include <stdio.h> #include <algorithm> #include &l ...
- hdu 5667 BestCoder Round #80 矩阵快速幂
Sequence Accepts: 59 Submissions: 650 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536 ...
- hdu 5643 BestCoder Round #75
King's Game Accepts: 249 Submissions: 671 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 6 ...
- hdu 5641 BestCoder Round #75
King's Phone Accepts: 310 Submissions: 2980 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...
随机推荐
- spark hadoop 对比 Resilient Distributed Datasets
hadoop 迭代消耗大 每次迭代启动一个完整的MapReduce作业 spark 首要目标就是避免运算时 过多的网络和磁盘IO开销 Resilient Distributed Datasets ht ...
- C#调用Oracle存储过程的方法
C#调用Oracle存储过程的方法 准备: 环境:pl/sql+oracle9i+vs2008 创建表test: create table TEST( ID NUMBER,//编号 NA ...
- [Codeforces 466C] Number of Ways
[题目链接] https://codeforces.com/contest/466/problem/C [算法] 维护序列前缀和 , 枚举中间一段即可 , 详见代码 时间复杂度 : O(N) [代码] ...
- SQLAlchemy框架---ORM思想
- 如何在BCGControlBar工程的工具栏里面新增下拉列表控件
通常情况下,工具栏里面都是一些按钮和图片,很少可以看到下拉列表控件,但是在某些应用场合,也需要用到下拉列表控件.今天在这里就简单讲解下如何在工具栏里添加下拉列表控件. 添加的过程也比较简单,在CM ...
- CAS和Oauth2的区别
CAS是单点登陆(SSO) Oauth2是对某种资源进行授权访问
- Python机器学习算法 — 逻辑回归(Logistic Regression)
逻辑回归--简介 逻辑回归(Logistic Regression)就是这样的一个过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证我们这个求解的模型 ...
- [Swift]圆周率π
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- 状态压缩+枚举 POJ 3279 Fliptile
题目传送门 /* 题意:问最少翻转几次使得棋子都变白,输出翻转的位置 状态压缩+枚举:和之前UVA_11464差不多,枚举第一行,可以从上一行的状态知道当前是否必须翻转 */ #include < ...
- Docker学习系列(二):Docker三十分钟快速入门(上)
一.背景 最近,Docker技术真是一片火热,它的出现也弥补了虚拟机资源消耗过高的问题,直接让虚拟化技术有了质的飞跃.那么本文我们来聊一聊Docker,和大家一起认识Docker,简单入门Dock ...