CodeForces1070A Find a Number 图论
2024-08-27 01:58:31
令状态$f(i, j)$表示模$d$为$i$,和为$j$时的最小数
可以通过$bfs$来转移
然而就没了...
复杂度$O(10ds)$
#include <queue>
#include <vector>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
namespace remoon {
#define ri register int
#define ll long long
#define pii pair<int, int>
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define tpr template <typename ra>
#define rep(iu, st, ed) for(ri iu = st; iu <= ed; iu ++)
#define drep(iu, ed, st) for(ri iu = ed; iu >= st; iu --)
#define gc getchar
inline int read() {
int p = , w = ; char c = gc();
while(c > '' || c < '') { if(c == '-') w = -; c = gc(); }
while(c >= '' && c <= '') p = p * + c - '', c = gc();
return p * w;
}
}
using namespace std;
using namespace remoon;
#define sid 525
#define pid 5205 int d, s;
struct node {
int d, s, di;
node() {}
node(int a, int b, int c) : d(a), s(b), di(c) {}
};
queue <pii> q; bool vis[sid][pid];
node pre[sid][pid]; void bfs() {
vis[][] = ;
q.push(mp(, ));
while(!q.empty()) {
pii p = q.front(); q.pop();
rep(i, , ) {
int nd = (p.fi * + i) % d;
int ns = p.se + i;
if(ns > s) break;
if(!vis[nd][ns]) {
vis[nd][ns] = ;
q.push(mp(nd, ns));
pre[nd][ns] = node(p.fi, p.se, i + '');
}
}
}
} inline void dfs(int nd, int ns) {
if(pre[nd][ns].di != )
dfs(pre[nd][ns].d, pre[nd][ns].s);
if(pre[nd][ns].di != )
printf("%c", pre[nd][ns].di);
} int main() {
d = read(); s = read();
bfs();
if(!vis[][s]) puts("-1");
else dfs(, s);
return ;
}
最新文章
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(33)-MVC 表单验证
- python logging模块
- ubuntu网络配置&;&;ubuntu apt-get错误解决办法
- [New Portal]Windows Azure Virtual Machine (14) 在本地制作数据文件VHD并上传至Azure(1)
- js相对路径相关(比如:js中的路径依赖导入该js文件的路径)
- java socket 发送文件
- Ajax清除浏览器js、css、图片缓存的方法
- 图解TCP/IP读书笔记(二)
- 单元测试之道(使用NUnit)
- cocos2d-x实战 C++卷 学习笔记--第5章 精灵
- Android Integer.decode()和Intger.valueof()
- android中如何实现离线缓存
- css直接写出小三角
- 前端的UI设计与交互之反馈示篇
- django-auth组件
- [Swift]LeetCode1017. 负二进制转换 | Convert to Base -2
- 运维工作笔记-------nginx的反向代理
- Vue 获取登录用户名
- AJAX请求返回HTTP 400 错误 - 请求无效 (Bad request)
- 如何设置Navicat的显示字体与字体大小?
热门文章
- 钉钉头像大小设置 阿里cdn尺寸截取参数设置
- 免費域名申請.me .im .in .co .la .do .ms .kz .tk .ru .mu .pn .tt
- torch.Tensor.view (Python method, in torch.Tensor)
- Remove K Digits
- CentOS时区GMT修改为CST
- select into的缺点
- 最简单删除SQL Server中所有数据的方法(不用考虑表之间的约束条件,即主表与子表的关系)
- C#基础之数据类型
- OneNote无法同时设置中英文字体设置解决办法
- day7 面向对象进阶