网站更新维护页面,深圳市seo网站设计,成都建立网站,外贸网站是用什么软件做的第一次做TC全部通过#xff0c;截图纪念一下。 终于蓝了一次#xff0c;也是TC上第一次变成蓝名#xff0c;下次就要做Div.1了#xff0c;希望div1不要挂零。。。_(:зゝ∠)_ A. KitayutaMart2 万年不变的水题。 #includecstdio
#includecstring
#include截图纪念一下。 终于蓝了一次也是TC上第一次变成蓝名下次就要做Div.1了希望div1不要挂零。。。_(:зゝ∠)_ A. KitayutaMart2 万年不变的水题。 #includecstdio
#includecstring
#includecmath
#includeiostream
#includealgorithm
#includeset
#includemap
#includestack
#includevector
#includequeue
#includestring
#includesstream
#define eps 1e-9
#define ALL(x) x.begin(),x.end()
#define INS(x) inserter(x,x.begin())
#define FOR(i,j,k) for(int ij;ik;i)
#define MAXN 1005
#define MAXM 40005
#define INF 0x3fffffff
using namespace std;
typedef long long LL;
int i,j,k,n,m,x,y,T,ans,big,cas,num;
bool flag;
class KitayutaMart2
{public:int numBought(int K, int T){mT/K;m;ans0;while (m!0) {m1;ans;}return ans-1;}
}; View Code B. Fragile2 给一个N个点3N20的无向图现在不分先后取出其中两个点使得强连通分量变多问最多有多少种取法。 因为图实在太小了所以枚举这两个点即可。用DFS计算连通分支数。 #includecstdio
#includecstring
#includecmath
#includeiostream
#includealgorithm
#includeset
#includemap
#includestack
#includevector
#includequeue
#includestring
#includesstream
#define eps 1e-9
#define ALL(x) x.begin(),x.end()
#define INS(x) inserter(x,x.begin())
#define FOR(i,j,k) for(int ij;ik;i)
#define MAXN 1005
#define MAXM 40005
#define INF 0x3fffffff
using namespace std;
typedef long long LL;
int i,j,k,n,m,x,y,T,ans,big,cas,num,G[55][55],G2[55][55];
bool flag;
int vis[55];
class Fragile2
{public:void check(int u){int i,j,k;for (i0;in;i){if (!vis[i] G2[u][i]){vis[i]1;check(i);}}}int cc(int a,int b)//计算删去结点a,b后的连通度 {int i,j,k,blk;memset(vis,0,sizeof(vis));for (i0;in;i)//复制一下地图 {for (j0;jn;j){G2[i][j]G[i][j]; }}vis[a]1;vis[b]1;//删去结点a,b for (i0;in;i) {G2[i][a]0;G2[a][i]0;G2[b][i]0;G2[i][b]0;}blk0; for (i0;in;i)//计算强连通分量 {if (!vis[i]){blk;vis[i]1;check(i); }}return blk;}int countPairs(vector string mp){int i,j,k;nmp.size();for (i0;in;i)//复制一下地图到G {for (j0;jn;j){if (mp[i][j]N) G[i][j]0;else G[i][j]1;}}numcc(n,n);//计算一下不修改地图时的强连通分量数 ans0;for (i0;in;i)//枚举要删除的两个点。 {for (ji1;jn;j){if (numcc(i,j)) ans;}}return ans;}
}; View Code C.ABC 字符串长为N3N30并且由大写字母A,B,C组成其中存在KkN*(N-1)/2对数i和j满足ijs[i]s[j]。现在给出N,K试着构造任意一个满足条件的字符串 动态规划设dp[a][b][c][s]!0时为当前字符串由a个字母Ab个字母bc个字母C组成并且得分为s成立。而dp[a][b][c][s]0表示由a个字母Ab个字母bc个字母C组成的字符串不可能得分为s。 转移方程 (1) dp[a1][b][c][s]dp[a][b][c][s]; (2) dp[a][b1][c][sa]dp[a][b][c][s] (3) dp[a][b][c1][sab]dp[a][b][c][s] 初始状态为dp[0][0][0][0]1 因为我们要递归输出所以设dp[a][b][c][s]1为由状态1转移过来的dp[a][b][c][s]2为由状态2转移过来的dp[a][b][c][s]3为由状态3转移过来的 最后递归输出答案即可。 #includecstdio
#includecstring
#includecmath
#includeiostream
#includealgorithm
#includeset
#includemap
#includestack
#includevector
#includequeue
#includestring
#includesstream
#define eps 1e-9
#define ALL(x) x.begin(),x.end()
#define INS(x) inserter(x,x.begin())
#define FOR(i,j,k) for(int ij;ik;i)
#define MAXN 1005
#define MAXM 40005
#define INF 0x3fffffff
using namespace std;
typedef long long LL;
int i,j,k,n,m,x,y,T,big,cas,num;
bool flag;
int dp[35][35][35][440];
string ans;class ABC
{public:void out(int x,int y,int z,int s){if (x0y0z0s0) return;if (dp[x][y][z][s]1) {out(x-1,y,z,s);ansA;}elseif (dp[x][y][z][s]2) {out(x,y-1,z,s-x);ansB;}else{out(x,y,z-1,s-x-y);ansC;}}string createString(int n, int c){int i,j,k,l;dp[0][0][0][0]1;for (i0;in;i){for (j0;ijn;j){for (k0;ijkn;k){for (l0;lc;l){if (dp[i][j][k][l]){if (ijkn lc)//找到答案输出 {out(i,j,k,l);//递归输出return ans;}dp[i1][j][k][l]1;if (lic) dp[i][j1][k][li]2; if (lijc) dp[i][j][k1][lij]3;}}}}}return ;} View Code 转载于:https://www.cnblogs.com/zhyfzy/p/4268944.html