目录 F-DPS题意解题思路代码 I-Hard Math Problem题意解题思路代码 F-DPS 题意 链接:DPS 解题思路 模拟注意算s的时候可能会爆int 代码 #include<stdio.h> #include<algorithm> using namespace std; typedef long long ll; int n,d[111],maxn; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&d[i]); maxn=max(maxn,d[i]); } for(int i=1;i<=n;i++) { if(d[i]==0) { printf("++\n"); printf("||0\n"); printf("++\n"); continue; } ll s=1ll*d[i]*50,x=0; if(s%maxn>0)x=1; x+=s/maxn; printf("+"); for(int i=1;i<=x;i++)printf("-"); printf("+\n|"); for(int i=1;i<x;i++)printf(" "); if(d[i]==maxn)printf("*|"); else printf(" |"); printf("%d\n",d[i]); printf("+"); for(int i=1;i<=x;i++)printf("-"); printf("+\n"); } return 0; } I-Hard Math Problem 题意 链接:Hard Math Problem给出一个n*m的网格,每个格子可放H、E、G中的一个,要求H的上下左右至少要有一个E和一个G,问n、m都取无穷大时放H的个数占总格数的多少 解题思路 取一条斜线,在斜线上交错摆E和G,这样斜线之上和之下的两条斜线都可以摆放H,则占比为2/3 代码 /* GHGHGH HEHEHE GHGHGH HEHEHE GHGHGH HEHEHE */ #include<stdio.h> #include<algorithm> using namespace std; int main() { printf("0.666667\n"); return 0; }