codeforces 283C
给 n 中 钱币。以及每两种钱币的关系,表示,ai 的 个数 要大于 bi 组合成一个价值val,求方案数,好奇妙的一个处理方式,不得不说又学到了
#include<stdio.h>
#include<vector>
#include<cstring>
#include<iostream>
using namespace std;
const int mod = 1e9 + 7;
const int M = 1e5 + 1;
long long dp[M];
int a[500],in[500],father[500];int main(){int n,m,t,u,v;while(cin >> n >> m >> t){memset(in,0,sizeof(in));memset(father,0,sizeof(father));memset(dp,0,sizeof(dp)); int x = m;// memset(che,0,sizeof(che));for(int i=1;i<=n;i++) cin >> a[i];while(m --){cin >> u >> v;in[v] ++ ;father[u] = v;}for(int i=0;i<x;i++){int pos = 0;for(int j=1;j<=n;j++){if(father[j] && !in[j]){pos = j;break;}}// cout << pos <<endl;if(!pos){puts("0");return 0;}int pre = father[pos];father[pos] = 0;in[pre] --;t -= a[pos];a[pre] += a[pos];if(t < 0){puts("0");return 0;}}dp[0] =1;for(int i=1;i<=n;i++){for(int j=a[i];j<=t;j++){dp[j] = (dp[j] + dp[j-a[i]]) % mod;}}//cout << t <<endl;cout << dp[t] <<endl;}
}
codeforces 283C相关推荐
- codeforces 283C Coin Troubles(背包DP)
题目链接:http://codeforces.com/problemset/problem/283/C 题意:给定n件物品以及每件的重量(每种物品无限多).已知选取了一些物品的总重量为m,(x1,x2 ...
- CodeForces 283C Coin Troubles 分析+背包思想
很灵活的题目,题意简单,看到又是钱币问题,类似于那种给了一定数目T,有n种钱币,每种的价值,让你组合成总价值为T的方案数,但是加了一些限制条件,那就是某些种类钱币数量必须大于另一些种类的,加了个限制条 ...
- CodeForces 375D Tree and Queries
传送门:https://codeforces.com/problemset/problem/375/D 题意: 给你一颗有根树,树上每个节点都有其对应的颜色,有m次询问,每次问你以点v为父节点的子树内 ...
- 「日常训练」Bad Luck Island(Codeforces Round 301 Div.2 D)
题意与分析(CodeForces 540D) 是一道概率dp题. 不过我没把它当dp做... 我就是凭着概率的直觉写的,还好这题不算难. 这题的重点在于考虑概率:他们喜相逢的概率是多少?考虑超几何分布 ...
- 【codeforces 812C】Sagheer and Nubian Market
[题目链接]:http://codeforces.com/contest/812/problem/C [题意] 给你n个物品; 你可以选购k个物品;则 每个物品有一个基础价值; 然后还有一个附加价值; ...
- CodeForces 获得数据
针对程序的输出可以看见 CodeForces :当输入.输出超过一定字符,会隐藏内容 所以:分若干个程序进行输入数据的获取 1. 1 for (i=1;i<=q;i++) 2 { 3 scanf ...
- codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)...
题目链接:http://www.codeforces.com/problemset/problem/281/A 题意:将一个英文字母的首字母变成大写,然后输出. C++代码: #include < ...
- CodeForces 595A
题目链接: http://codeforces.com/problemset/problem/595/A 题意: 一栋楼,有n层,每层有m户,每户有2个窗户,问这栋楼还有多少户没有睡觉(只要一个窗户灯 ...
- codeforces A. Jeff and Digits 解题报告
题目链接:http://codeforces.com/problemset/problem/352/A 题目意思:给定一个只有0或5组成的序列,你要重新编排这个序列(当然你可以不取尽这些数字),使得这 ...
最新文章
- spark1.1.0学习路线
- [一文一命令]tail命令详解
- 尾气冒黑烟是什么问题_对机动车环保检测尾气排放的了解!
- 判断两条线段是否相交
- Nacos配置的优先级
- 数据库考研SQL操作
- mysql linux 中文乱码怎么解决_如何解决mysql linux 中文乱码的问题
- 专用efi文件包_优质设备项目来啦!山钢焦炉、济南鲍德炉料公司所属资产包转让...
- python 详解re模块
- python读取目录里所有txt文件转excel
- 服务器改文件,服务人员:如何更新服务器上的文件更改缓存?
- TBSchedule原理与实践
- Win7 ASP连接数据库“未找到提供程序.该程序可能未正确安装”问题
- Mac制作windows10安装U盘
- BZOJ4134 : ljw和lzr的hack比赛
- 给定一个整型变量a,写两段代码,第一个设置a的bit 3,第二个清除a 的bit 3。在以上两个操作中,要保持其它位不变。
- 杭州电子科技大学研究生计算机专业目录,杭州电子科技大学2017年硕士计算机学院招生目录.pdf...
- ubuntu18 配置静态IP地址(详细版)
- dubbo的简单搭建
- java word模版填充_java向word模板中填充数据(总结)