解析:標準簽到題,(⊙o⊙)…,直接輸出accept,a不大寫的人不知道什麼心態
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
int main()
解析:很有規律的乙個序列,我沒去推公式而是直接打的表…公式應該是 (n/4+1)*5+(n%4+1)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 10050;
int a[maxn];
int main()
int t;
scanf("%d",&t);
while(t--)
return
0;}
解析:二分答案,二分答案出來以後在二分查詢在每個序列裡有多少個小於等於他的,stl是個好東西
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 1e5+100;
int a[maxn];
int b[maxn];
int main()
printf("%d\n",l);}}
return
0;}
解析:沒有重點,那麼所有可能的線段是n*(n-1)/2,由於問的是直線,所以列舉兩個點,判斷是否和其他點相交如果相交就ans–
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 2e5+10;
struct point
a[maxn];
int n,m;
int x_mul(point p0,point p1,point p2)
int main()}}
printf("%d\n",ans);
}return
0;}
解析:dp題,dp[i][n]表示到點i長度為n是否可行,狀態轉移方程為:dp[tmp.v][tt] |= dp[i][tt-tmp.w],tmp.v到i之間有條長度為tmp.w的邊
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 5000+40;
struct node
node(int _v,int _w)
};vector
g1[maxn],g2[maxn];
int dp[maxn][maxn];
int main()
else
g2[u].push_back(node(v,l));
}dp[1][0] = 1;
for(int i=1;i<=n;i++)
for(unsigned j=0;jfor(int tt=tmp.w;tt<=k;tt++)
dp[tmp.v][tt] |= dp[i][tt-tmp.w];}}
int ans = -1;
for(int i=0;i<=k;i++)
printf("%d\n",ans);
}return
0;}
解析:每個齒輪轉到想要的位置最少步數為:min((ai-ai+10)%10,(ai-ai+10)%10)
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
const int maxn = 10050;
int a[maxn];
int main()
printf("%d\n",ans);
}return
0;}
解析:尺取維護答案
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 1e6+10;
char a[maxn];
int vis[100];
int main()
r++;
}if(cnt == k)
ans = max(ans,r-l);
vis[a[l]-'a']--;
if(vis[a[l]-'a']==0)
cnt--;
l++;
}printf("%d\n",ans);
}return
0;}
解析:找到一點』#』,列舉正方形長度,判斷是否合法
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int maxn = 1e6+10;
char a[25][25];
bool slove(int x,int y,int n)
for(int i=y;i<=y+n;i++)
return
true;
}int main()}}
}if(flag)
puts("yes");
else
puts("no");
}return
0;}
2017校賽題解
又是一年一度的校賽,三個人從出題到準備環境花了好幾天的時間。雖然也是蠻累的,期間出了一些小差錯,但總的來說還是蠻成功的 感覺比去年好一些,逃。一共出了7題,但是考慮到比賽時間比較緊張就砍掉了兩題 反正沒砍我的題,對了,關於 teddywang 同學在題面上黑我的情況表示強烈譴責,將在他不注意的時候實...
GDUT 2016校賽決賽
用max1 money 來表示花費money在頭盔和首飾上能得到的最優值,故列舉a,列舉b,列舉a i b j 的a b種情況。因為b和a可能有依賴關係 用max2 money 來表示花費money在單手和雙手上能得到的最優值,故列舉c兩兩相加的c c 1 種情況,再列舉d即可 max1,max2都...
2017級校賽總結
這次校賽之前還有些慌,因為最近的狀態不是特別好,有四級的拖累,不過比賽的結果還是相對可以接受的,拿了第二名,可惜的是最後乙個題目沒有交上。比賽過程 因為受之前新生賽的影響,感覺老師不會把簡單題目放在前面,所以草草的看了一眼題目就跳過了,繼續瀏覽其他的題目,然後看了搬書那道題目,剛開始也沒有看清看成了...