锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
//鍓╀笅鐨勯棶棰樺氨鏄粠宸叉帓濂界殑鏁扮粍涓壘鍒版渶闀夸笅闄嶅瓙鍒楋紙speed錛夛紝騫朵笖杈撳嚭榪欎釜瀛愬垪鐨勯暱搴﹀拰瀛愬垪涓殑鍏冪礌鐨勪笅鏍?br>

#include <stdio.h>
#include <stdlib.h>
struct mouse

{
int w;
int s;
int cn;
}node[1001];
int cmp (const void *a, const void *b) //涓瀹氳娉ㄦ剰鎸囬拡鐨勬寚鍚戞槸緇撴瀯浣?nbsp; mouse

{
if ( (*(mouse *)a).w != (*(mouse *)b).w ) //浣撻噸涓嶇瓑鏃跺浣撻噸榪涜鎺掑簭
return (*(mouse *)a).w - (*(mouse *)b).w;
else if ( (*(mouse *)a).w == (*(mouse *)b).w )
return (*(mouse *)b).s - (*(mouse *)a).s; //鍙嶄箣瀵歸熷害榪涜闄嶅簭鎺掑簭
}
int main ()

{
//杈撳叆鏁版嵁
int levl = 1;
while (scanf ("%d%d", &node[levl].w, &node[levl].s) != EOF) 
{
node[levl].cn = levl;
levl ++;
}
//蹇帓
qsort ( node, levl, sizeof(node[0]), cmp );
//瀵箂peed 鎸夐檷搴忔壘鍒版渶闀跨殑瀛愪覆:
//鐢ㄦ暟緇凢[i]璁板綍浠涓鴻搗鐐圭殑婊¤凍鏉′歡鐨勫瓙鍒楅暱搴︼紝鏄劇劧鍒濆鏃朵負(fù)1;
//鐢╮out[i]璁板綍鎼滅儲(chǔ)鍒版渶闀垮瓙涓茬殑璺緞 錛屾妸璺緞鐨勪笅鏍囧瓨鍏ュ埌index[]涓?nbsp;
//max璁板綍鍒板綋鍓嶄負(fù)姝㈠瓙鍒楃殑鏈闀塊暱搴︼紝end 璁板綍鍒板綋鍓嶄負(fù)姝㈡渶闀垮瓙鍒楃殑鏈鍚庝竴涓笅鏍?br>
int F[1001];
for (int i = 1; i < levl; i ++)
{
F[i] = 1;
}
int rout[1001];
for (int i = 1; i < levl; i ++)
{
rout[i] = i;
}
int max = 1; int end = 1;
for (int i = 2; i < levl; i ++)
{
for (int j = 1; j < i; j ++)
{
if (node[j].s > node[i].s)
{
if (F[j] + 1 > F[i]) //鐜板湪闀垮害澧炲姞1瑕?nbsp;> 褰撳墠F[i] 鎵嶈兘浜х敓浣滅敤 
{
F[i] = F[j] + 1;
rout[i] = j; //璁板綍鎵懼埌鏈涓嬮檷搴忓垪鐨勮礬寰勶紙鍗充笅鏍囨爣鍙鳳級(jí)
}
}
}
if ( F[i] > max ) //褰撳墠璁板綍鐨勯暱搴﹀ぇ浜?nbsp;> max鏃?nbsp;
{
max = F[i];
end = i;
}
}
printf ("%d\n", max);
int index[1001];
for (int i = 0; i < max; i ++) //灝嗚礬寰勮褰曞埌鏁扮粍index[]涓?nbsp;
{
index[max - i - 1] = end;
end = rout[end--];
}
for ( int i = 0; i < max; i ++)
{
printf ("%d\n", node[index[i]].cn);
}
// system ("pause");
return 0;
} 
]]>
// r琛ㄧず鑷敱綰跨殑鏉℃暟錛岋紙i - r錛夎〃紺哄鉤琛岀嚎鐨勬潯鏁幫紝錛坕 - r錛? r 琛ㄧず騫寵綰垮拰鑷敱綰跨殑浜ょ偣涓暟
// r 鍙互鍙?0 -- i - 1 浣嗘槸榪欓噷鍒濆鍖栫殑緙樻晠寰幆鏃?r 鍙?1 -- i - 1
// dp[r][k]琛ㄧず r 鏉$洿綰挎湰韜殑浜ょ偣涓暟
// max i 鏉$洿綰挎渶澶氱殑浜ょ偣鏁?
// 鍏堟妸i鏉$洿綰?涓氦鐐圭殑鎯呭喌鍒濆鍊間負(fù)1(榪欐槸涓瀹氱殑)錛岀劧鍚庤嫢i-r鏉$洿綰挎湁j涓氦鐐瑰垯i鏉$洿綰垮繀鏈夛紙i-r錛?r+j涓氦鐐癸紝鏍囪涓?1
// 閫氳繃鏍囪涓?1 鐨勪笅鏍?j 涓?n 鍙?i 鏃剁殑浜ょ偣鏁?nbsp;
鏈鐨勫閥濡欎箣澶勫湪浜庯細(xì)灝嗕笅鏍囧搴斾負(fù)浜ょ偣縐嶇被杈撳嚭錛屽悓鏃跺張婊¤凍浜嗕粠灝忓埌澶ц緭鍑鴻繖涓潯浠?br>

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()

{
int dp[21][191];
memset (dp, 0 , sizeof (dp));
for (int i = 0; i < 21; i ++)
{
for (int j = 0; j < 191; j ++)
{
dp[i][0] = 1; //0涓氦鐐圭殑鎯呭喌鍒濆鍊間負(fù)1
}
}
dp[1][0] = 1; //閫掑綊鍑哄彛
for (int i = 2; i < 21; i ++)
{
for (int r = 1; r < i; r ++)
{
for (int j = 0; j < 191; j ++) //20鏉$洿綰挎渶澶氫氦鐐規(guī)暟涓?nbsp;190 
{
if (dp[i - r][j] == 1) //閫掑綊鎬濇兂錛氬鏋?nbsp;r 鏉$洿綰垮瓨鍦ㄤ氦鐐規(guī)暟 j (榪欓噷 i - r 淇濊瘉浜唕 鍙互鍙栧埌 1 鑷?nbsp;i - 1錛屽嵆鏈塪p[r][k])
dp[i][j + (i - r) * r] = 1; //鍒檌鏉$洿綰垮繀鏈夛紙i-r錛?r+j(j 鍗砫p[r][k])涓氦鐐癸紝鏍囪涓?nbsp;1
}
}
}
int n;
while (scanf ("%d", &n) != EOF)
{
printf ("%d",0);
int max = n * (n - 1) / 2;
for (int j = 1; j <= max; j++)
{
if (dp[n][j])
printf (" %d",j);
}
printf ("\n");
}
return 0;
}
]]>

#include <stdio.h>
#include <stdlib.h>
int main ()

{
int b[1001];
int n;
__int64 sum[1001]; //鐢ㄤ簬瀛樻斁鍒?nbsp;i 浣嶇疆涓烘 鐨勫瓙搴忓垪鐨勫拰
while (scanf ("%d", &n) && n)
{
for ( int i = 0; i < n;i ++)
{
scanf ("%d", &b[i]);
}
sum[0] = b[0];
for (int i = 1; i < n; i ++) //涓嬮潰鐨勫鐞嗗拰 grids 2757鐨勫鐞嗘濇兂鏄竴鏍風(fēng)殑錛屽彧涓嶈繃sum 鏁扮粍瀛樼殑鏄拰鍊?br>
{
int tempMaxsum = 0;
for (int j = 0; j < i; j ++) //鍥犱負(fù) i 涔嬪墠鐨勫拰鍊煎凡緇忓瓨鍌ㄥ湪浜唖um涓紝
// 鎵浠ュ彧闇瑕佹壘鍒版渶澶х殑tempMaxSum鍚庡啀鍔犱笂 i 浣嶇疆鏈韓鐨勫煎氨鍙互浜?nbsp;
{
if (b[j] <b[i] && tempMaxsum < sum[j])
{
tempMaxsum = sum[j];
}
}
sum[i] = tempMaxsum + b[i];
}
__int64 max = -1;
for (int i = 0; i < n; i ++)
{
if (max < sum[i])
{
max = sum[i];
}
}
printf ("%I64d\n",max);
}
return 0;
}
]]>
//鍒╃敤 nMaxLen銆恑銆戣褰曢暱搴﹂伩鍏嶄簡閲嶅璁$畻

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main ()

{
int n;
int b[1000];
int nMaxLen[1000];
while (scanf ("%d", &n) != EOF && 1 <= n && n <= 1000)
{
memset (nMaxLen, 0 ,sizeof(nMaxLen));
//灝嗚緭鍏ョ殑鏁板煎瓨鍏ユ暟緇?nbsp;b 涓?nbsp;
for (int i = 0; i < n; i ++)
{
scanf ("%d", &b[i]);
}
//鎵懼埌姣忎竴涓姸鎬佷笅鏍?nbsp;i 瀵瑰簲鐨勬渶澶у瓙鍒楅暱搴︼紝騫跺皢鍏跺瓨鍏ユ暟緇刵MaxLen[]涓?/span>
nMaxLen[0] = 1;
for (int i = 1; i < n; i ++) 
{
int temp = 0;
for (int j = 0; j < i ; j ++)
{
if ( b[i] > b[j])
{
if (temp < nMaxLen[j]) //鍙湁褰撳綋鍓嶇殑闀垮害 < 涔嬪墠涓浣嶆暟鐨勫簭鍒楅暱鏃舵墠鍙互璧嬪鹼紝鏈鍚庤搗鍒?nbsp;temp + 1 鐨勪綔鐢?nbsp;
// 涓轟粈涔?鏈澶у簭鍒楀彲鑳藉嚭鐜板湪 j 涔嬪悗濡傦細(xì) 7 9 10 6 11
temp = nMaxLen[j];
}
}
nMaxLen[i] = temp + 1;
}
//閬嶅巻鏁扮粍nMaxLen浠庝腑璇誨嚭鏈澶у鹼紝鍗籌細(xì)鍦ㄨ浣嶇疆鏃跺彇寰楁渶澶х殑瀛愬簭鍒?/span>
int max = -1;
for (int i = 0; i < n; i ++)
{
if (nMaxLen[i] > max)
max = nMaxLen[i];
}
printf ("%d\n", max);
}
//system ("pause");
return 0;
}
]]>
#include <stdio.h>
2
#include <stdlib.h>
3
int main ()
4

{
5
int n, i, num;
6
7
while ( scanf ("%d", &i) != EOF )
8
{
9
for (int j = 0; j < i; j++)
10
{
11
num = 0;
12
scanf ("%d", &n);
13
num = 2 * n * n - n + 1;
14
printf ("%d\n", num);
15
}
16
}
17
return 0;
18
}
19
鎷撳睍錛氭洸綰垮垎鍓插鉤闈?br>闂鐨勬彁鍑猴細(xì)
璁炬湁n鏉″皝闂洸綰跨敾鍦ㄥ鉤闈笂錛岃屼換浣曚袱鏉″皝闂洸綰挎伆濂界浉浜や簬涓ょ偣錛屼笖浠諱綍涓夋潯灝侀棴鏇茬嚎涓嶇浉浜や簬鍚屼竴鐐癸紝闂繖浜涘皝闂洸綰挎妸騫抽潰鍒嗗壊鎴愮殑鍖哄煙涓暟銆?br>F(1)=2
F(n)=F(n-1)+2(n-1)
]]>